Format webhook 3xx: Sume does not follow redirects, use the final URL
A webhook endpoint that redirects counts as a failed delivery attempt. Register the final HTTPS URL, mind www and trailing-slash redirects, then redeliver.

If your webhook endpoint answers with a redirect, Sume counts the delivery as failed. The delivery docs say redirects are not followed, so a 301, 302 or 308 is not a success and the attempt is retried on the schedule. The usual causes are an HTTP to HTTPS bounce, a www to apex rule, or a trailing slash added by your framework.
The fix is to register the exact URL that answers 2xx on its own, and to check it with a plain request before you create a run.
How do I find the redirect?
Request the URL you registered without following redirects and read the status.
curl -sS -o /dev/null -w '%{http_code} %{redirect_url}\n' \
-X POST https://example.com/hooks/sume \
-H 'content-type: application/json' \
-d '{}'
What does the delivery require?
Sume's Run webhooks page sets the rules; the redirect rule is easy to miss next to them.
| Rule | Value |
|---|---|
| Success | A 2xx response within 10 seconds |
| Redirects | Not followed; a 3xx is a failed attempt |
| Attempts | Up to 10, with exponential backoff |
| URL | Public HTTPS, checked again at delivery time |
What if the run already ended?
Fix the URL, then ask Sume to send the event again with POST /v1/format-runs/{id}/webhook/redeliver. Meanwhile the run's status_url still gives the same result, so a broken endpoint costs you latency, not data.
Sources
Related posts
More in Developers
- Python verifier for Sume webhooks: stale timestamps, empty secret
A short Python function that verifies a Sume webhook: five-minute timestamp window, constant-time HMAC compare and a hard refusal of an empty secret.
- Forward verified Sume webhooks to Kafka, keyed by job_id
Verify the sume-v1 signature, refuse an empty secret, then produce each job event to Kafka with job_id as the key so retries land in one partition.
- Gemini 3.8 Live audio: wrap 24 kHz PCM in WAV, resample to 16 kHz
Gemini 3.8 Live takes 16-bit 16 kHz PCM in and returns 24 kHz out. A Python WAV wrapper, an ffmpeg resample command, and the Sume detach settings that match.
- New model id on a Sume Format run: probe for a 400 before launch day
When Gemini 4 Argon or any new model opens up, test whether a Format run accepts its id. A 400 invalid_request means it is not in the catalog yet.
Written by Sume