Render deploy hook returns 202: start a Sume run after a deploy

Render deploy hooks return 200 when a deploy starts and 202 when queued. Call one, then start a Sume Format run for the release only once it ships.

4 min readSume
All posts

A Render deploy hook is a URL you call to start a deploy, and it answers 200 when the deploy starts and 202 when it is queued behind another deploy. It does not start a Sume run for you; the hook is an inbound trigger, so a release video needs a separate step that calls Sume once the deploy is live.

That distinction matters for the query people actually type, which is usually how to chain the two.

What Render documents

Render's deploy hooks page says the hook URL carries a secret key query parameter, and that you can call it with GET or POST (read 2026-10-10). It lists the response codes 200 for a started deploy, 202 for a queued one, and 401, 404, 405 and 409 for failures. The page documents no rate limits.

Because the secret sits in the URL, keep it out of logs and chat tools, and treat a leaked hook as a credential that anyone can use to trigger a deploy.

Render deploy hook responses (Render docs, read 2026-10-10) and what to do next
StatusRender meaningYour next step
200Deploy startedWait for the service to report live, then create the Sume run
202Deploy queued behind anotherDo not create the run yet; the release is not live
401Not authorizedCheck the key value; stop and alert
404Not foundHook was removed or the URL is wrong
405Method not allowedUse GET or POST
409ConflictRead the body and decide; do not blindly repeat

Run after the deploy, not after the hook

A started deploy is not a live release. Create the Sume run from whatever signal you trust for success, for example a post-deploy check in your pipeline, and not from the hook response. A 202 in particular tells you the deploy has not begun.

The Sume side is a standard create: POST /v1/formats/{handle}/{slug}/runs with the release notes in input and the tone in instruction. Use Idempotency-Key equal to the release tag, so a pipeline retry returns the original receipt with idempotency_hit: true and does not render a second clip.

Cap and monitor

Add generation_spend_cap_usd, which is capped at $500 per run. Set communication.mode to webhook with a public HTTPS webhook_url, and verify the format.run.terminal event with HMAC SHA256 over timestamp.raw_body before you post the media link to your release channel.

If your pipeline cannot receive callbacks, use async mode and poll status_url; the receipt also carries result_url, events_url and cancel_url. A release video is rarely urgent, so polling every few seconds is a fair cost for fewer moving parts.

When the deploy fails

If the deploy fails, do not create the run, and if you already did, call cancel_url. Canceled runs deliver no webhook, so close them in your own record. Keep the Sume key in a secret store, separate from the Render hook key, since they unlock different things.

What the hook does not tell you

A deploy hook answers about the request, not about the outcome. Render's page lists status codes for starting and queueing, and says nothing that I read about telling you when the deploy finishes, so take completion from your own pipeline or a health check you control. If you only need a release clip, you can also create the run after your own post-deploy smoke test passes and skip any dependency on Render's status.

Keep the clip generation off the critical path. If the Sume call fails, the deploy should still count as successful, and the clip step should retry later using the same Idempotency-Key. A 503 from Sume is safe to repeat with that key, and 429 rate_limited carries retry-after.

Sources

Related posts

More in Integrations

All Integrations posts

Written by Sume