TanStackT
TanStack8mo ago
11 replies
full-green

Generic type for onServer value in setErrorMap remains undefined

We started using the lib in NextJS 15 at version 1.3. Currently trying to update to the latest (1.11.3), but it's giving me a typescript issue on one location. Diving a bit deeper into this, everything worked fine up untill 1.8, from 1.9 onward this breaks.

We have quite an abstract implementation with createFormHook and createFormHookContexts.
For the onSubmit validation we have written a solution that ensures both client side as well as server side errors correctly get passed through to the client form.

const form = useForm({
        validators: {
            onBlur: TestActionSchema,
        },
        defaultValues: {
            username: "",
            password: "",
            age: 22,
        } as TestActionSchemaType,
        onSubmit: async ({ value, formApi }) => {
            const result = await testAction(value);

            if (!result.success) {
                /* Setting server validation field errors */
                if (result.formErrors) {
                    for (const [key, errors] of Object.entries(result.formErrors)) {
                        formApi.setFieldMeta(key as any, (prev) => ({
                            ...prev,
                            errorMap: {
                                onSubmit: errors ? errors.map((error: string) => ({ message: error })) : undefined,
                            },
                        }));
                    }
                    return;
                }

                /* Setting server error that is accessible from form */
                if (result.serverError) {
                    formApi.setErrorMap({
                        onServer: [result.serverError],
                    });
                    return;
                }
            }

            if (result.success) {
                form.reset();
            }
        },
    });


It seems like TOnServer never gets set? I'm however not sure what's needed in order for typescript to know what the type is for TOnServer
Screenshot_2025-05-22_at_11.33.58.png
Was this page helpful?