Retry Today and Later sync automatically after transient failures #365

Closed
opened 2026-08-09 02:50:15 +00:00 by timmy · 0 comments
Owner

User problem

Today and Later cross-device sync retains failed operations but only retries after an online or visibility event. A transient 503 while the app remains foregrounded can therefore leave the plan device-local indefinitely.

Slice

Add bounded, single-flight automatic retries to both planning sync queues. Preserve the original operation ID, honor server Retry-After guidance, cancel redundant timers after success/lifecycle flushes, and prevent a retry from crossing account boundaries. Return Retry-After for transient planning-store failures and expose an honest retrying status.

Acceptance tests

  • A retryable sync failure schedules a foreground retry without an online/visibility event.
  • Retry-After is honored and only one timer/request is active.
  • The unchanged operation ID applies once after recovery.
  • Success cancels redundant retries; account changes never send the previous account queue.
  • Today capacity conflicts remain terminal and are not retried.
  • Focused frontend/backend tests and the full suite pass.
## User problem Today and Later cross-device sync retains failed operations but only retries after an online or visibility event. A transient 503 while the app remains foregrounded can therefore leave the plan device-local indefinitely. ## Slice Add bounded, single-flight automatic retries to both planning sync queues. Preserve the original operation ID, honor server Retry-After guidance, cancel redundant timers after success/lifecycle flushes, and prevent a retry from crossing account boundaries. Return Retry-After for transient planning-store failures and expose an honest retrying status. ## Acceptance tests - A retryable sync failure schedules a foreground retry without an online/visibility event. - Retry-After is honored and only one timer/request is active. - The unchanged operation ID applies once after recovery. - Success cancels redundant retries; account changes never send the previous account queue. - Today capacity conflicts remain terminal and are not retried. - Focused frontend/backend tests and the full suite pass.
timmy self-assigned this 2026-08-09 02:50:15 +00:00
timmy closed this issue 2026-08-09 03:01:56 +00:00
Sign in to join this conversation.
No Milestone
No project
No Assignees
1 Participants
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: stackchain/stackchain-dashboard#365
No description provided.