Skip to content

fix(transport): preserve retry delay on service unavailable responses - #428

Draft
tkkhq wants to merge 1 commit into
mainfrom
tkkhq/pgproxy-startup-recovery-tests
Draft

tkkhq wants to merge 1 commit into
mainfrom
tkkhq/pgproxy-startup-recovery-tests

Conversation

@tkkhq

@tkkhq tkkhq commented Nov 14, 2026 •

Copy link
Copy Markdown
Contributor

Tracking

Why

  • Database capacity refusals can return HTTP 503 with Retry-After, but Python drops that retry delay when constructing ServerError. Applications need the server's delay to bound their own retries.

Summary

  • preserve numeric Retry-After on HTTP 503 as well as 429 without automatically replaying the request
  • verify typed error metadata and exactly one transport request in the native error-mapping test
  • retain the SDK's existing OpenAPI snapshot and generated client; no method or response-body schema changes are needed
  • coordinate the public database guidance in Kong/volcano-docs; publish that guidance after the Hosting and SDK behavior is released

Verification

  • Before the fix, the HTTP 503 case failed because retry_after was None instead of 17.
  • uvx --from uv==0.12.17 uv run poe test — 3,007 passed.
  • uvx --from uv==0.12.17 uv run poe lint
  • uvx --from uv==0.12.17 uv run poe types
  • uvx --from uv==0.12.17 uv run poe format-check
  • uvx --from uv==0.12.17 uv run poe generated
  • uvx --from uv==0.12.17 uv run poe package-check — isolated wheel/sdist installation and synthetic HTTP quickstart passed.
  • No package publication or live SDK acceptance is claimed.

This branch has not been deployed

No deployments
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.

1 participant