You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
serverFn.url used as a form action throws "forgot to return a response from your server route handler" #7745
When calling a server function directly, it works fine, but when calling a server function through .url (e.g. in a form action), it gives an HTTPError (full paths censored):
Error: It looks like you forgot to return a response from your server route handler. If you want to defer to the app router, make sure to have a component set in this route.
at throwRouteHandlerError (.../tanstack-http-error-repro/node_modules/.pnpm/@[email protected][email protected][email protected]_/node_modules/@tanstack/start-server-core/src/createStartHandler.ts:187:9)
... 5 lines matching cause stack trace ...
at async file://.../tanstack-http-error-repro/node_modules/.pnpm/@[email protected]_@[email protected][email protected]_r_d72b1ab9da4814157965ad4aab276fbb/node_modules/@tanstack/start-plugin-core/dist/esm/vite/dev-server-plugin/plugin.js:79:36 {
cause: Error: It looks like you forgot to return a response from your server route handler. If you want to defer to the app router, make sure to have a component set in this route.
at throwRouteHandlerError (.../tanstack-http-error-repro/node_modules/.pnpm/@[email protected][email protected][email protected]_/node_modules/@tanstack/start-server-core/src/createStartHandler.ts:187:9)
at getFinalResponse (.../tanstack-http-error-repro/node_modules/.pnpm/@[email protected][email protected][email protected]_/node_modules/@tanstack/start-server-core/src/createStartHandler.ts:257:7)
at executeMiddleware (.../tanstack-http-error-repro/node_modules/.pnpm/@[email protected][email protected][email protected]_/node_modules/@tanstack/start-server-core/src/createStartHandler.ts:325:33)
at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
at async startRequestResolver (.../tanstack-http-error-repro/node_modules/.pnpm/@[email protected][email protected][email protected]_/node_modules/@tanstack/start-server-core/src/createStartHandler.ts:524:50)
at async Object.fetch (.../tanstack-http-error-repro/node_modules/.pnpm/@[email protected][email protected][email protected][email protected]_react-dom@19._13289cfff4aadcbbf2e856a5b2ef2e8e/node_modules/@tanstack/react-start/dist/plugin/default-entry/server.ts:16:14)
at async file://.../tanstack-http-error-repro/node_modules/.pnpm/@[email protected]_@[email protected][email protected]_r_d72b1ab9da4814157965ad4aab276fbb/node_modules/@tanstack/start-plugin-core/dist/esm/vite/dev-server-plugin/plugin.js:79:36,
status: 500,
statusText: undefined,
headers: undefined,
data: undefined,
body: undefined,
unhandled: true
}
to work around this at the moment, you need to always return a Response from the server function if you ever use it as a form. (if this is intentional, then the docs need to be updated -- they say returning anything serializable works in all cases.)
Which project does this relate to?
Start
Describe the bug
When calling a server function directly, it works fine, but when calling a server function through
.url(e.g. in a form action), it gives an HTTPError (full paths censored):Complete minimal reproducer
https://github.com/sprucepad/tanstack-http-error-repro
Steps to Reproduce the Bug
pnpm install && pnpm run devlocalhost:3000,localhost:3001andlocalhost:3002Expected behavior
I expected
testFn.urlto work for forms, as that's what's listed in the docs. Instead, I get an HTTP error.Screenshots or Videos
repro.mp4
Platform
Additional context
No response