From 1d403883a0ad1b7cb3a5510243e192a5262e9ac0 Mon Sep 17 00:00:00 2001 From: IK Date: Thu, 10 Sep 2026 18:10:57 +0700 Subject: [PATCH] A05: Add sessionStorage error handling for unavailable storage Bug: sessionStorage operations (getItem, setItem, removeItem) could fail if storage is unavailable (private mode, quota exceeded, etc.), causing form draft recovery to break. Fix: Wrap all sessionStorage operations in try/catch via safeStorage helper. - safeStorage.getItem() - returns null on error - safeStorage.setItem() - silently ignores errors - safeStorage.removeItem() - silently ignores errors This ensures: - Draft recovery works even if storage is partially unavailable - Form submission doesn't crash if storage is full - Cleanup on success doesn't crash - File input values are not saved (already handled by FormData filter) Verification: - Astro build: 0 errors - All existing A05 behavior preserved - Error handling added for read, write, and cleanup --- apps/web/src/pages/report.astro | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/apps/web/src/pages/report.astro b/apps/web/src/pages/report.astro index 15e10ee..5390606 100644 --- a/apps/web/src/pages/report.astro +++ b/apps/web/src/pages/report.astro @@ -22,11 +22,17 @@ const reportId = Astro.url.searchParams.get("report_id"); }