[Bug] Mail-Kategorisierung pausiert bei App-Background — Timer läuft aber irreführend weiter #324

Closed
opened 2026-05-18 08:03:41 +02:00 by admin-mrrm · 0 comments
Owner

Beobachtetes Verhalten

Wenn in der Mail-Inbox auf Kategorisieren geklickt wird und die App während des Laufs in den Background wechselt (User springt in eine andere App), läuft die Timer-Anzeige in der UI scheinbar weiter, aber es werden keine neuen Mails verarbeitet. Erst beim Zurückwechseln in die App geht die Kategorisierung weiter.

Erwartetes Verhalten

Die Kategorisierung sollte entweder

  • (A) im Background weiterlaufen bis sie fertig ist, ODER
  • (B) explizit pausiert/abgebrochen werden mit klarer UI-Anzeige, dass das passiert ist.

Aktuell suggeriert die weiterlaufende Timer-Anzeige Fortschritt, der gar nicht stattfindet → irreführend.

Reproduktion

  1. Mail-Inbox in der App öffnen
  2. Kategorisieren-Button drücken
  3. Während Verarbeitung läuft: in andere App wechseln (Home / Recents)
  4. Kurz warten (z.B. 30s)
  5. Zurück zur mrrmlabapp wechseln
  6. Beobachtung: Seit dem App-Wechsel wurden keine neuen Mails kategorisiert, obwohl der Timer optisch weiterlief. Kategorisierung setzt erst beim Zurückkommen fort.

Umgebung

  • App: mobile (Expo)
  • Version / Commit: bitte ausfüllen
  • OS / Browser / Device: bitte ausfüllen (Android/iOS, Gerät)

Zusätzliche Infos

Vermutliche Ursache: In React Native / Expo wird der JS-Event-Loop bei Background-Wechsel gedrosselt — setInterval/setTimeout pausieren, Netzwerk-Polling stoppt. Die Timer-Anzeige basiert vermutlich nicht auf realer Date.now()-Differenz, sondern auf Tick-Count → wirkt "weiterlaufend" obwohl effektiv pausiert.

Mögliche Lösungsrichtungen:

  • Kategorisierungs-Pipeline serverseitig laufen lassen (API-Job), Mobile zeigt nur Live-Status via Polling/SSE
  • Timer-Anzeige an Date.now()-Diff hängen statt Tick-Counter → wenigstens ehrliche UI
  • Background-Task via expo-task-manager / expo-background-task evaluieren (Limitierungen iOS beachten)
  • Bei Background-Detection (AppState) klar kommunizieren: "Pausiert — App im Vordergrund halten oder Server-Pipeline nutzen"
## Beobachtetes Verhalten Wenn in der Mail-Inbox auf **Kategorisieren** geklickt wird und die App während des Laufs in den Background wechselt (User springt in eine andere App), läuft die Timer-Anzeige in der UI scheinbar weiter, aber es werden **keine neuen Mails verarbeitet**. Erst beim Zurückwechseln in die App geht die Kategorisierung weiter. ## Erwartetes Verhalten Die Kategorisierung sollte entweder - (A) im Background weiterlaufen bis sie fertig ist, ODER - (B) explizit pausiert/abgebrochen werden mit klarer UI-Anzeige, dass das passiert ist. Aktuell suggeriert die weiterlaufende Timer-Anzeige Fortschritt, der gar nicht stattfindet → irreführend. ## Reproduktion 1. Mail-Inbox in der App öffnen 2. **Kategorisieren**-Button drücken 3. Während Verarbeitung läuft: in andere App wechseln (Home / Recents) 4. Kurz warten (z.B. 30s) 5. Zurück zur mrrmlabapp wechseln 6. Beobachtung: Seit dem App-Wechsel wurden keine neuen Mails kategorisiert, obwohl der Timer optisch weiterlief. Kategorisierung setzt erst beim Zurückkommen fort. ## Umgebung - App: mobile (Expo) - Version / Commit: _bitte ausfüllen_ - OS / Browser / Device: _bitte ausfüllen (Android/iOS, Gerät)_ ## Zusätzliche Infos **Vermutliche Ursache:** In React Native / Expo wird der JS-Event-Loop bei Background-Wechsel gedrosselt — `setInterval`/`setTimeout` pausieren, Netzwerk-Polling stoppt. Die Timer-Anzeige basiert vermutlich nicht auf realer `Date.now()`-Differenz, sondern auf Tick-Count → wirkt "weiterlaufend" obwohl effektiv pausiert. **Mögliche Lösungsrichtungen:** - Kategorisierungs-Pipeline serverseitig laufen lassen (API-Job), Mobile zeigt nur Live-Status via Polling/SSE - Timer-Anzeige an `Date.now()`-Diff hängen statt Tick-Counter → wenigstens ehrliche UI - Background-Task via `expo-task-manager` / `expo-background-task` evaluieren (Limitierungen iOS beachten) - Bei Background-Detection (`AppState`) klar kommunizieren: "Pausiert — App im Vordergrund halten oder Server-Pipeline nutzen"
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
admin-mrrm/mrrmlabapp#324
No description provided.