Troubleshooting
Five problem areas, each with a cause and a fix. Start with the area that matches the symptom.
On this page
Build fails
A build that fails on dependencies usually means the wrong Node version or a partial
install. Confirm Node.js 20 or newer, delete node_modules/, and run
npm ci again. A build that fails on a page usually names the page and the
missing import; check that the import path matches the file on disk, including case.
Storage
Kestrel keeps almost nothing in browser storage: the theme preference only. If a page behaves oddly after an upgrade, clear the site's stored data in the browser and reload; every page rebuilds its state from its own content.
Theme
The theme preference lives under the storage key kestrel-theme, with values
light and dark. A theme that sticks after toggling usually means
a stored value from an older build: remove that key and reload, and the site falls back to
the system preference.
Forms
A form that does nothing on submit is almost always an adapter problem. Check the adapter
value in the form configuration against the adapters in the
Customization docs: demo sends nothing by
design, and mailto needs a mail program on the visitor's device. A form with
no adapter configured, or with an adapter name that matches nothing, drops submissions
silently; give it an adapter before anything else.
Routes
An unknown path shows the 404 page with the text "This route is not in the map." That is
the correct behavior for a path outside the route map, not an error to fix. If a path that
should exist shows the 404 page, check the route map: the page file must exist under
src/pages/ and the build must have generated its output under
dist/. Rebuild after adding or moving a page.
Back to the documentation index.