Trigger.dev 4.6.3 error cause chains: log the Sume code and request id
Trigger.dev v4.6.3 shows thrown error cause chains in the dashboard, CLI and alerts. Wrap a failed Sume call so the cause carries error.code and request_id.

When a Trigger.dev task calls Sume and the call fails, throw a new error whose cause is the Sume error, with the error.code and request_id on it, because Trigger.dev v4.6.3 (2026-09-17) now captures thrown error cause chains and surfaces them in the dashboard, the CLI and alerts. The alert then names the Sume code that decided whether to retry, and the request id Sume support needs.
The Trigger.dev detail is from its changelog, read 2026-10-03, which gives only that one line about cause chains; Sume's envelope and codes are from Errors and rate limits and Generation admission. I did not run a task against v4.6.3.
What does a Sume error carry?
Public errors are a JSON envelope with error.code, error.message, error.request_id and details, and the request id is also in the response headers. Put code and request id into the cause's message or fields. Do not put the API key, signed URLs or raw media URLs there: Sume's docs say to leave those out of anything you share when reporting an issue.
Which codes should the task retry?
Decide before you throw. Fix-the-request codes should fail the run at once; capacity codes are retried with the same Idempotency-Key, so the retry returns the original job instead of billing twice. 429 queue_full means wait for jobs to finish or cancel queued ones; 429 rate_limited means back off with retry-after.
| Code | Status | Retry in the task? |
|---|---|---|
invalid_request | 400 | No, fix the request |
unauthorized | 401 | No, fix the key |
insufficient_credits | 402 | No, add funds or lower the cost |
idempotency_conflict | 409 | No, the key was reused for a different payload |
queue_full | 429 | Later, same key, after a job finishes or is canceled |
rate_limited | 429 | After retry-after, same key |
provider_capacity_exceeded | 503 | Later, same key |
Sources
Related posts
More in Developers
- Try-on double click: one Idempotency-Key per shopper and garment
Stop a double-clicked Try on button from running a Sume Format twice. Derive the Idempotency-Key from shopper, garment and version, and read the 200 replay.
- Typed try-on results: output_schema with a video URL and your SKU
Bind an output_schema to a Sume try-on run to get the video as a typed field, and keep your SKU outside it because identifiers do not round-trip.
- TTS from an accepted script: transcript_source instead of pasted text
Sume TTS can read an accepted script by script_revision_id and sentence_ids, not pasted text. MCP tools tts_source_get and tts_source_verify_spine support it.
- TTS volume 0.5 to 2: set narration gain before mixing with music
Sume TTS 1.0 generation_config.volume runs from 0.5 to 2 alongside speed 0.6 to 1.5. How to set narration level before you mix with a music bed.
Written by Sume