Signals can outrun TypeSafe's rate limits, and a 429 is retried as any other error #277

Closed
opened 2026-10-17 07:34:26 -07:00 by rays · 1 comment
Owner

TypeSafe's default limits are 80 requests and 100,000 input tokens a second. Signals cap calls at six in flight (#275), not a rate: at the fastest call seen, 74 ms, six in flight is 81 a second, and a call carrying many Signals is thousands of tokens. A 429 is counted as an error and the rest of the pass goes on asking. Pace calls under both limits, and stop the pass on a 429.

TypeSafe's default limits are 80 requests and 100,000 input tokens a second. Signals cap calls at six in flight (#275), not a rate: at the fastest call seen, 74 ms, six in flight is 81 a second, and a call carrying many Signals is thousands of tokens. A 429 is counted as an error and the rest of the pass goes on asking. Pace calls under both limits, and stop the pass on a 429.
rays added the bug label 2026-10-17 07:34:26 -07:00
Author
Owner

Fixed in ce78599: every call to Jev takes a turn under 60 calls and 80,000 input tokens a second (TypeSafe allows 80 and 100,000), up to ten in flight; a 429 holds every call back for Retry-After (or 1 s) and ends the pass. Each jev span records paced_ms; /metrics has ipx_jev_paced_seconds_total and result="rate_limited"; the dashboard's Signals row draws calls and tokens a second against the limit. Deployed in ipx 1.3.1-dev.

Fixed in ce78599: every call to Jev takes a turn under 60 calls and 80,000 input tokens a second (TypeSafe allows 80 and 100,000), up to ten in flight; a 429 holds every call back for Retry-After (or 1 s) and ends the pass. Each jev span records paced_ms; /metrics has ipx_jev_paced_seconds_total and result="rate_limited"; the dashboard's Signals row draws calls and tokens a second against the limit. Deployed in ipx 1.3.1-dev.
rays closed this issue 2026-10-17 07:40:12 -07:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: rays/ipx#277