@tanstack/solid-start 1.169 is the first stable release of TanStack Start. Upgrading from a release candidate means replacing the removed APIs below and checking the behavior changes that apply to your app.
Start requires Vite 8 when you build with Vite. Upgrade with Vite's migration guide.
| Removed | Use instead |
|---|---|
| @tanstack/nitro-v2-vite-plugin | nitro() from nitro/vite. See Nitro hosting. |
| useSession | A session library such as iron-session. See Session Management. The new library cannot read existing Start session cookies: use a new cookie name and sign users in again, or test a migration that reads the old cookies first. |
| .inputValidator() on server functions and middleware | .validator(), which takes the same validator. |
A handler returned by createStartHandler(...) now rethrows the original error. createServerEntry converts errors to responses, and the built-in entry already uses it. In a custom entry, catch inside the createServerEntry callback and return handleStartError(error) or rethrow. See Error Handling.
Uncaught errors produce a generic JSON body with a status from 400 to 599 (500 by default), even if a success status was set before the error. Return a Response when an endpoint needs a specific error payload.
A server-function call rejects with whatever was thrown, including a Response and falsy values such as undefined. Return a Response to resolve the call with it. See Raw Responses.
Errors thrown by request middleware during a server-function call are sent to the client with their message, and their status is no longer always 500.
Response helpers override the response you return or throw. setResponseStatus(401) followed by returning a 200 response sends 401.
setResponseHeader('set-cookie', cookie) replaces all outgoing cookies. Use setCookie or appendResponseHeader('set-cookie', cookie) to add one.
setResponseStatus ignores codes outside 200-599 and warns outside production.
Serialized server-function replies never carry Location, Content-Encoding, or Content-Length from helpers, and ignore a helper 204, 205, or 304. Use redirect() to redirect.