sapper
sapper copied to clipboard
Updates to the session store when rendering _error.svelte causes a TypeError
trafficstars
Describe the bug
If you are on a 404 page handled by Sapper and your code (e.g. in the _layout.svelte file) updates the session store, you'll notice a TypeError in your console logs.
Logs
Uncaught (in promise) TypeError: Cannot destructure property 'route' of 'dest' as it is undefined.
To Reproduce https://github.com/AaronDDM/sapper-store-update-bug/blob/main/src/routes/_layout.svelte
- Check out the above repo
- Start your server via
npm run dev - Visit a URL that does not exist (e.g. http://localhost:3000/ARouteThatDoesNotExist)
- Open your browser console logs
- Refresh the page
Expected behavior No type error.
Stacktraces
If you have a stack trace to include, we recommend putting inside a <details> block for the sake of the thread's readability:
Stack trace
| (anonymous) | @ | app.mjs:455 | |
|---|---|---|---|
| (anonymous) | @ | app.mjs:28 | |
| __awaiter | @ | app.mjs:24 | |
| hydrate_target | @ | app.mjs:454 | |
| (anonymous) | @ | app.mjs:334 | |
| (anonymous) | @ | app.mjs:28 | |
| __awaiter | @ | app.mjs:24 | |
| (anonymous) | @ | app.mjs:327 | |
| set | @ | index.mjs:35 | |
| update | @ | index.mjs:43 | |
| (anonymous) | @ | _layout.svelte:11 | |
| Promise.then (async) | |||
| step | @ | app.mjs:27 | |
| (anonymous) | @ | app.mjs:28 | |
| __awaiter | @ | app.mjs:24 | |
| (anonymous) | @ | app.mjs:327 | |
| set | @ | index.mjs:35 | |
| update | @ | index.mjs:43 | |
| (anonymous) | @ | _layout.svelte:11 | |
| setTimeout (async) | |||
| instance$2 | @ | _layout.svelte:10 | |
| init$1 | @ | index.mjs:1474 | |
| Layout | @ | _layout.svelte:17 | |
| create_fragment | @ | App.svelte:20 | |
| init$1 | @ | index.mjs:1489 | |
| App | @ | App.svelte:17 | |
| (anonymous) | @ | app.mjs:424 | |
| fulfilled | @ | app.mjs:25 | |
| Promise.then (async) | |||
| step | @ | app.mjs:27 | |
| (anonymous) | @ | app.mjs:28 | |
| __awaiter | @ | app.mjs:24 | |
| render | @ | app.mjs:408 | |
| handle_error | @ | app.mjs:382 | |
| (anonymous) | @ | app.mjs:354 | |
| Promise.then (async) | |||
| start$1 | @ | app.mjs:353 | |
| (anonymous) | @ | client.js:3 |