fal error_type request_timeout: which Sume field to monitor
fal exposes error_type in the body and X-Fal-Error-Type as a header. Sume puts category, stage and code in the error body; the request id is also a header.

fal says a failed request carries an error_type field and an X-Fal-Error-Type header, with values such as request_timeout and runner_disconnected, for retry logic and monitoring. Sume's equivalents are in the error body: code to branch on, category and stage for dashboards, and retryable for the retry decision. The request id also comes as a header, x-sume-request-id; rate-limit responses add retry-after.
fal text from its retries page; Sume text from Errors and spend and Errors and rate limits. Read 2026-10-01.
Where does each service put the category?
On fal, in both the response body and a header, so a proxy can read it without parsing JSON. On Sume, the sources I read show the category inside the JSON error envelope; the documented error headers are the request id and, on rate limits, retry-after.
| Need | fal | Sume |
|---|---|---|
| Category | error_type and X-Fal-Error-Type | category in the error body |
| Branch in code | error_type | code (stable token) |
| Retry decision | Status code and condition | retryable, retry_after_seconds |
| Correlation id | Not covered in the page read | request_id and x-sume-request-id |
Which Sume categories mean a timeout?
Two job categories: generation_timeout ("Poll status or retry later") and worker_timeout (same advice). Because the advice starts with polling, check the job status first; the work may have finished after your wait ended. See fal 504 versus generation_timeout.
What should I key alerts on?
Alert on category and stage, which the docs call coarser labels for dashboards and alerts. Route retries on code and retryable. Never match on message, which may change.
What do I attach to a support report?
The request_id and the code. Leave out API keys, signing secrets and raw media URLs. For a general failure walkthrough, see why did my last request fail.
Sources
Related posts
More in Developers
- x-fal-needs-retry header: what Sume uses to signal a retry
fal marks retryable errors with X-Fal-Needs-Retry. Sume signals retry through error category and code, retry-after on 429, and the same idempotency key.
- x-fal-no-retry header: safe retries with a Sume Idempotency-Key
fal retries queued requests; X-Fal-No-Retry turns that off. On Sume you keep retries and make them safe with an Idempotency-Key on every paid submit.
- FastMCP client auth: pass the Sume API key as a string
In FastMCP, pass your Sume API key as a plain string to auth, with no Bearer prefix. The client adds the header; send only one credential.
- FFmpeg 8.1 AV1 and ProRes encoding: Sume has no codec field
FFmpeg 8.1 adds D3D12 H.264/AV1 and Vulkan ProRes encoding. Sume compiles ffmpeg server-side and rejects codec and crf fields, so you cannot pick an encoder.
Written by Sume