From a1648fc4c5556b63b98d76edce1b0bcb7f4f4f7d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Falc=C3=B3n?= Date: Thu, 14 May 2026 14:59:08 +0100 Subject: [PATCH] Fix Vite asset preload recovery (#399) ## Summary - detect Vite CSS preload failures as chunk load errors - reuse existing one-shot reload recovery for stale asset failures Fixes PHP-LARAVEL-29 Fixes PHP-LARAVEL-27 ## Tests - npm run test -- resources/js/lib/chunk-load-recovery.test.ts - npm run types *(fails: existing unrelated TypeScript errors in accounts, charts, transactions, crypto, etc.)* --- resources/js/lib/chunk-load-recovery.test.ts | 10 ++++++++++ resources/js/lib/chunk-load-recovery.ts | 1 + 2 files changed, 11 insertions(+) diff --git a/resources/js/lib/chunk-load-recovery.test.ts b/resources/js/lib/chunk-load-recovery.test.ts index 7dc73896..d3250bf3 100644 --- a/resources/js/lib/chunk-load-recovery.test.ts +++ b/resources/js/lib/chunk-load-recovery.test.ts @@ -15,6 +15,16 @@ describe('isChunkLoadError', () => { ).toBe(true); }); + it('detects Vite CSS preload failures', () => { + expect( + isChunkLoadError( + new Error( + 'Unable to preload CSS for /build/assets/app-BpqbLMXP.css', + ), + ), + ).toBe(true); + }); + it('ignores unrelated errors', () => { expect(isChunkLoadError(new Error('Validation failed'))).toBe(false); }); diff --git a/resources/js/lib/chunk-load-recovery.ts b/resources/js/lib/chunk-load-recovery.ts index e3e16773..ac56b26a 100644 --- a/resources/js/lib/chunk-load-recovery.ts +++ b/resources/js/lib/chunk-load-recovery.ts @@ -6,6 +6,7 @@ const CHUNK_LOAD_ERROR_PATTERNS = [ /error loading dynamically imported module/i, /Importing a module script failed/i, /Load failed for module script/i, + /Unable to preload CSS/i, /ChunkLoadError/i, /Loading chunk \d+ failed/i, ];