Я сталкиваюсь с непредвиденной ошибкой в приложении SvelteKit при попытке доступа к маршруту /account при входе в систему или иногда при обновлении страницы.
Эта ошибка возникает не каждый раз, и мне трудно понять, что делать, из-за общего ответа. Сообщение об ошибке представляет собой общую «Внутреннюю ошибку», которая является стандартной для любой непредвиденной ошибки sveltekit.
https://www.skanfarming.com.au/account
Error: { "message": "Internal Error" }
Error
at ae (https://www.skanfarming.com.au/_app/immutable/nodes/1.93df4267.js:1:2399)
at bt (https://www.skanfarming.com.au/_app/immutable/chunks/index.bb96de48.js:4:2893)
at new ie (https://www.skanfarming.com.au/_app/immutable/nodes/1.93df4267.js:1:2507)
at Xt (https://www.skanfarming.com.au/_app/immutable/chunks/scheduler.2895a0cd.js:1:8225)
at Array.ot (https://www.skanfarming.com.au/_app/immutable/entry/app.17894691.js:1:1680)
at Array.dt (https://www.skanfarming.com.au/_app/immutable/entry/app.17894691.js:1:6697)
at bt (https://www.skanfarming.com.au/_app/immutable/chunks/scheduler.2895a0cd.js:1:950)
at Qt (https://www.skanfarming.com.au/_app/immutable/nodes/0.eda2fa4d.js:3:8435)
at bt (https://www.skanfarming.com.au/_app/immutable/chunks/index.bb96de48.js:4:3093)
at new ie (https://www.skanfarming.com.au/_app/immutable/nodes/0.eda2fa4d.js:3:9357)
Действия по воспроизведению:
Войдите в приложение. После успешного входа в систему приложение автоматически перенаправляется на маршрут /account. «Внутренняя ошибка» иногда возникает особенно часто при первом или новом входе в систему, а сведения об ошибке записываются в консоль.
Если после этого я снова войду в систему, у меня не возникнет никаких проблем, и все будет загружаться как положено.
Что я пробовал:
Я попытался добавить инструкции отладки (console.info) в серверный код, но не смог определить точное местонахождение ошибки.
Среда:
"svelte": "^4.2.18", "@sveltejs/kit": "^1.30.4", Версия Node.js: v20.11.0,
Браузер: Chrome и другие современные браузеры.
Я действительно застрял в попытках продвинуться в отладке ошибок этого типа, так как не знаю, куда мне следует идти для расследования.
Вопросы:
Как я могу получить более подробную информацию об ошибке и определить ее первопричину?
Существуют ли какие-либо конкретные методы обработки ошибок SvelteKit или лучшие практики, которые могут помочь в этой ситуации?
Каковы некоторые распространенные причины непредвиденных «внутренних ошибок» в приложениях SvelteKit и как их устранить?
Существуют ли какие-либо дополнительные шаги или инструменты отладки, которые я могу использовать, чтобы определить источник ошибки?
Будем очень признательны за любые рекомендации или предложения о том, как справиться с этой ситуацией. Заранее спасибо!
🤔 А знаете ли вы, что...
Svelte активно развивается, добавляя новые функции и улучшая производительность.
Эта ссылка, которую вы разместили в своем ответе, также ведет на другую страницу, посвященную фиксации этих ошибок с использованием «handleError» в вашем hooks.server.ts
Я сам использую это для регистрации ошибок в базе данных, но вы также можете просто console.info() сообщить об ошибке, чтобы получить «настоящую» ошибку.
export async function handleError({ error }) {
console.info(error.stack)
};
Без этого вы просто увидите 500 | Сообщение о внутренней ошибке на стороне клиента и ничего в консоли сервера
Однако с его помощью вы увидите стек ошибок на консоли сервера.
Вот пример, если у меня нет синтаксически правильного +page.server.js. Ошибка находится в +page.server.js в строке 4.
Я предполагаю, что причиной этого обычно являются синтаксические ошибки, ИЛИ, если вы вручную выдаете ошибки типа throw new Error('message')
ReferenceError: badType is not defined
at load (/src/routes/+page.server.js:4:2)
at Module.load_server_data (/node_modules/@sveltejs/kit/src/runtime/server/page/load_data.js:49:42)
at eval (/node_modules/@sveltejs/kit/src/runtime/server/page/index.js:150:41)