What it means
Every tool declares atimeoutMs in its ToolSpec. If a call exceeds it, Aeris aborts and returns TIMEOUT. This is different from UPSTREAM_UNAVAILABLE: the upstream may have been perfectly healthy, but our call to it took too long — usually because the request scope is too broad.
Retryable, but only if you also narrow the request.
How to fix
- Reduce the scope: shorter date range, fewer entities, smaller page size.
- Wait
retry_after_ms(default 2000ms) before retrying the same call. - For write actions, reuse the original
idempotency_key— a duplicate write is impossible even if the first attempt actually landed.
Response envelope
details.timeout_ms is the ceiling the tool was configured for — useful for right-sizing your retries.
Related
UPSTREAM_UNAVAILABLE— upstream itself was down.RATE_LIMITED— the other 4xx that’s retryable.