From 13f35f4f26e9c45ff3aaa8aa66486e7949f9a2fe Mon Sep 17 00:00:00 2001 From: corsacca Date: Mon, 4 May 2026 10:59:48 +0100 Subject: [PATCH] Better error messages when updating the CMS --- app/pages/admin/pages/[id].vue | 6 ++++-- server/api/admin/pages/[id].patch.ts | 4 +++- server/api/admin/pages/[id]/translations/[locale].put.ts | 4 +++- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/app/pages/admin/pages/[id].vue b/app/pages/admin/pages/[id].vue index e8f939ef..14c4265c 100644 --- a/app/pages/admin/pages/[id].vue +++ b/app/pages/admin/pages/[id].vue @@ -251,9 +251,11 @@ async function saveAll(statusOverride?: 'draft' | 'published', localeOverride?: await refresh() return true } catch (e: any) { + const status = e?.statusCode || e?.response?.status + const detail = e?.data?.statusMessage || e?.data?.message || e?.statusMessage || e?.message toast.add({ - title: 'Save failed', - description: e?.data?.statusMessage || e?.message, + title: status ? `Save failed (${status})` : 'Save failed', + description: detail || 'Unexpected error — please try again', color: 'error' }) return false diff --git a/server/api/admin/pages/[id].patch.ts b/server/api/admin/pages/[id].patch.ts index 020d4145..b294da3c 100644 --- a/server/api/admin/pages/[id].patch.ts +++ b/server/api/admin/pages/[id].patch.ts @@ -77,6 +77,8 @@ export default defineEventHandler(async (event) => { if (e?.statusCode) { throw createError({ statusCode: e.statusCode, statusMessage: e.statusMessage || e.message }) } - throw e + console.error('[admin/pages/[id].patch] unhandled error', { id, error: e }) + const message = e instanceof Error ? e.message : String(e) + throw createError({ statusCode: 500, statusMessage: message || 'Unexpected server error' }) } }) diff --git a/server/api/admin/pages/[id]/translations/[locale].put.ts b/server/api/admin/pages/[id]/translations/[locale].put.ts index d7d7c94c..c10441b8 100644 --- a/server/api/admin/pages/[id]/translations/[locale].put.ts +++ b/server/api/admin/pages/[id]/translations/[locale].put.ts @@ -67,6 +67,8 @@ export default defineEventHandler(async (event) => { if (e?.statusCode) { throw createError({ statusCode: e.statusCode, statusMessage: e.statusMessage || e.message }) } - throw e + console.error('[admin/pages/[id]/translations/[locale].put] unhandled error', { id, locale, error: e }) + const message = e instanceof Error ? e.message : String(e) + throw createError({ statusCode: 500, statusMessage: message || 'Unexpected server error' }) } })