Skip to content

Calendar push failures retry on every sync and hide the provider's error #662

Closed

Description

@Valtora

When creating a push subscription fails, Nojoin marks the channel failed and is meant to wait 30 minutes before trying again (docs/CALENDAR.md). _should_provision in backend/services/calendar_push_service.py times that wait from updated_at, which only moves on an actual change. Writing the same failure again changes nothing, so every sync and every sweep retries, twice in the same second at times. The warning and last_error keep only httpx's status line, not Graph's error.code and message, so the reason for a 400 can't be seen.

Fix: record the provider's error code and message (no tokens or calendar contents), stamp the attempt time explicitly, back off longer after a 4xx, and say in docs/CALENDAR.md that a CDN or WAF must let Microsoft and Google POST to the two webhook paths.

Ours

Activity

  1. self-assigned this
    on Oct 23, 2026
  2. added
    bugSomething isn't working
    severity:lowMinor issue, cosmetic, or low-impact edge case.
    scope:backendBackend API and shared backend code.
    on Oct 23, 2026
  3. Valtora commented on Oct 23, 2026

    @Valtora
    OwnerAuthor

    Fixed by #667. A failed channel stamps its attempt time, waits 6 hours after a 4xx and 30 minutes after a network error, 5xx or 429, and records the provider's error code and message.

  4. added a commit that references this issue on Oct 23, 2026
    7a2ba97
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

bugSomething isn't workingscope:backendBackend API and shared backend code.severity:lowMinor issue, cosmetic, or low-impact edge case.

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions