fix(push): IdleService starts before credentials persist — transient "No stored credentials" at account-add #403

Closed
opened 2026-07-07 01:58:25 +00:00 by JMR-dev · 0 comments
JMR-dev commented 2026-07-07 01:58:25 +00:00 (Migrated from github.com)

Observed

On-device 2026-07-06, at account-add: IdleService: IDLE for imap:<ref> dropped; No stored credentials … (MailConnectionFactory.resolveSecret). IDLE starts before the new account's secret has finished persisting — a transient ordering race. It retried and recovered on its own, so low severity, but it fires a failed IDLE attempt + log noise on every account add.

Fix

Gate the initial IDLE start on the secret being persisted (or make resolveSecret at IDLE startup retry-with-backoff so the first attempt doesn't fail before the secret is ready). Confirm no functional gap — it self-heals today, so this is polish + noise reduction.

Evidence: scratchpad coldfetch-results sign-in logcat. Backlog (transient, recovers).

## Observed On-device 2026-07-06, at account-add: `IdleService: IDLE for imap:<ref> dropped; No stored credentials … (MailConnectionFactory.resolveSecret)`. IDLE starts before the new account's secret has finished persisting — a transient ordering race. It **retried and recovered** on its own, so low severity, but it fires a failed IDLE attempt + log noise on every account add. ## Fix Gate the initial IDLE start on the secret being persisted (or make `resolveSecret` at IDLE startup retry-with-backoff so the first attempt doesn't fail before the secret is ready). Confirm no functional gap — it self-heals today, so this is polish + noise reduction. Evidence: scratchpad `coldfetch-results` sign-in logcat. Backlog (transient, recovers).
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: JMR-dev/LibreMail#403