Skip to content

Python and JS SDKs — 429 WAIT signal lost at exception boundary, no Retry-After #1325

@SirBrenton

Description

@SirBrenton

Finding

Three files map 429 responses to typed exceptions with no Retry-After consulted and no WAIT vs STOP distinction:

  • packages/python-sdk/e2b/api/__init__.py
  • packages/python-sdk/e2b/envd/api.py
  • packages/js-sdk/src/envd/api.ts

Same pattern across both Python and JavaScript SDKs.

The consequence

When a provider returns Retry-After: 60, the signal is swallowed at the exception boundary. The caller receives a typed error with no timing information. Retry decisions default to local backoff inside the cooldown window.

Expected behavior

  • Preserve Retry-After across the exception boundary
  • Surface retry timing to the caller
  • Distinguish WAIT (transient throttle) from STOP (quota exhaustion) before retrying

Related pattern

WAIT-signal-lost-at-exception-boundary

Corpus reference: https://github.com/SirBrenton/pitstop-truth

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions