OpenAiResponsesAgentAdapter calls the model with 15s connect / 45s read timeouts but no retry/backoff on 429 or 5xx. OpenPhoneAgentJobScheduler.isCancelled() hardcodes false (:142-144), so background jobs can't stop while waiting on a stuck upstream.
Fix
- Bounded exponential backoff with jitter for 429/5xx.
- Respect
Retry-After when present.
- Wire
isCancelled() to a real signal from the job manager so a user-cancelled job actually stops.
- Add a
RuntimeException-safe path so a broker outage doesn't kill the whole agent thread.
Size: M
OpenAiResponsesAgentAdaptercalls the model with 15s connect / 45s read timeouts but no retry/backoff on 429 or 5xx.OpenPhoneAgentJobScheduler.isCancelled()hardcodesfalse(:142-144), so background jobs can't stop while waiting on a stuck upstream.Fix
Retry-Afterwhen present.isCancelled()to a real signal from the job manager so a user-cancelled job actually stops.RuntimeException-safe path so a broker outage doesn't kill the whole agent thread.Size: M