[IMPORTANT] Sync push-fouten onzichtbaar voor gebruiker #7

Open
opened 2026-08-05 21:11:34 +02:00 by eddy · 0 comments
Owner

Probleem

src/sync/syncService.ts:95,104: In de push loop worden errors verzameld in errors[], maar de caller (DashboardScreen.tsx:43-52) checkt alleen result.deleted > 0 || result.pulled > 0 om een cache refresh te triggeren. Als er alleen push-errors waren (geen nieuwe data), worden errors stilletjes genegeerd.

Daarnaast slikt DashboardScreen.tsx:50-52 sync-fouten zonder feedback:

try { ... await syncAll() ... } catch { console.warn('Sync failed') }

Gevolg: een gebruiker kan pending records hebben die nooit slagen, zonder enige melding.

Oplossing

  1. In DashboardScreen.tsx: roep altijd refreshCache() aan na sync (niet alleen bij pulled > 0 || deleted > 0)
  2. Toon sync errors aan de gebruiker via showError() toast wanneer errors.length > 0
  3. In syncAll(): geef errors[] terug aan de caller (zit al in het return type SyncResult)
  4. In de catch van DashboardScreen: toon showError('Sync mislukt') in plaats van alleen console.warn
## Probleem `src/sync/syncService.ts:95,104`: In de push loop worden errors verzameld in `errors[]`, maar de caller (`DashboardScreen.tsx:43-52`) checkt alleen `result.deleted > 0 || result.pulled > 0` om een cache refresh te triggeren. Als er alleen push-errors waren (geen nieuwe data), worden errors stilletjes genegeerd. Daarnaast slikt `DashboardScreen.tsx:50-52` sync-fouten zonder feedback: ```ts try { ... await syncAll() ... } catch { console.warn('Sync failed') } ``` Gevolg: een gebruiker kan pending records hebben die nooit slagen, zonder enige melding. ## Oplossing 1. In `DashboardScreen.tsx`: roep altijd `refreshCache()` aan na sync (niet alleen bij `pulled > 0 || deleted > 0`) 2. Toon sync errors aan de gebruiker via `showError()` toast wanneer `errors.length > 0` 3. In `syncAll()`: geef `errors[]` terug aan de caller (zit al in het return type `SyncResult`) 4. In de catch van DashboardScreen: toon `showError('Sync mislukt')` in plaats van alleen `console.warn`
Sign in to join this conversation.
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
eddy/weegschaal-app#7
No description provided.