Luma callback: 3 retries, 5 s timeout, vs Sume webhooks

Luma retries a failed callback at most 3 times with a 5-second timeout. Sume retries job webhooks up to 10 times with a 10-second timeout and signs each body.

4 min readSume
All posts

Luma's Ray 2 callback endpoint must return 200, is retried at most 3 times, and has a 5-second timeout, per its video generation docs. Sume's job webhooks retry up to 10 attempts in total, wait 10 seconds per attempt, space attempts 30 seconds apart by default, and sign the raw body so you can verify it.

Side by side

The two schemes differ in how forgiving they are of a slow receiver.

Callback delivery rules (read 2026-10-03)
RuleLuma Ray 2Sume job webhook
SuccessReturn 200Any 2xx response
RetriesMax 3Up to 10 attempts total
Timeout5 seconds10 seconds per attempt
Spacing100 ms delayFixed delay, 30 s by default
Image inputsYour own CDN URLsPublic HTTPS URLs

Design for the short timeout

A 5-second budget is tight if your handler writes to a database or calls another service before it replies. The fix is the same on either platform: store the event, return success, and process later. Sume's docs say to return any 2xx after durably storing the event and to use job_id as your idempotency key.

Submitting in webhook mode

Send mode: webhook with a public HTTPS webhook_url. Sume signs the raw JSON body with HMAC SHA-256 over <timestamp>.<raw_body> and sends x-sume-webhook-timestamp and x-sume-webhook-signature headers. Reject a timestamp outside your tolerance window, five minutes by default.

Keep a polling fallback

Webhook delivery is an optimization, not the only way to learn the result. Keep polling status_url available for events that never arrive. If you instead use sync or subscribe on a video job, wait_timeout_seconds is bounded to 0 to 30 seconds and the job usually outlasts it, so continue with the status URL and do not resubmit.

curl -X POST https://api.sume.com/v1/video-router/generate \
  -H "Authorization: Bearer $SUME_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: webhook-demo-001" \
  -d '{"model":"seedance-2.5","prompt":"A slow pan across a desk","duration":8,"mode":"webhook","webhook_url":"https://example.com/hooks/sume"}'

Sources

Related posts

More in Developers

All Developers posts

Written by Sume