Skip to content

Preserve worker poll identity across backend outages - #73

Merged
rmcdaniel merged 2 commits into
mainfrom
fix/worker-backend-unavailable-recovery
Sep 25, 2026
Merged

rmcdaniel merged 2 commits into
mainfrom
fix/worker-backend-unavailable-recovery

Conversation

@rmcdaniel

@rmcdaniel rmcdaniel commented Sep 25, 2026 •

Copy link
Copy Markdown
Member

Refs #72 and Server #137. Worker-scoped retries now honor validated backend_unavailable responses without consuming the finite transport retry budget or changing the prepared request. Workflow, activity, query, and multiplexed workflow/update-validation polls retain their logical poll ID; registration and heartbeat also recover with the same request. Malformed and explicitly non-retryable backend replies fail closed. Direct Client calls remain bounded; shutdown interrupts the retry.

Evidence: the baseline regression failed all three primary poll kinds after the generic retry budget. On the current head, the focused suite passed 83 tests; the full non-integration suite passed 1,450 tests (2 skipped, 31 deselected); Ruff, package-wide mypy, and public-boundary scan passed. CI is running. Keep #72 open through package publication and published-artifact verification.

Legacy standalone update-validation polling has no durable poll ID in the Server protocol and is intentionally not treated as identity-preserving; the multiplexed poll path is covered.

@rmcdaniel
rmcdaniel marked this pull request as ready for review September 25, 2026 21:57
@rmcdaniel
rmcdaniel merged commit c0678f2 into main Sep 25, 2026
13 checks passed
@rmcdaniel
rmcdaniel deleted the fix/worker-backend-unavailable-recovery branch September 25, 2026 21:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants