Braze 404 renders empty: a fallback while the Sume clip renders

Braze turns a 404 into an empty string. Sume returns 409 job_not_completed until a result exists. Map one to a fallback URL so no message goes out blank.

4 min readSume
All posts

Why does a not-ready clip leave a blank spot in Braze?

Two documented behaviors meet. Sume's GET /v1/jobs/:id/result returns a 409 conflict, job_not_completed, until the job is ready; it never returns an empty result. Braze documents that a 404 from a Connected Content call renders an empty string, and that only a 2xx counts as success.

If your lookup passes the Sume status straight through, a clip that is still rendering becomes a hole in the message.

What maps to what?

Status mapping for a lookup in front of Braze; Braze rows read 2026-10-06 from the Braze docs
Source stateBad pass-throughWhat your lookup should return
Sume job running or queued (result 409 job_not_completed)409 or 404, Braze inserts nothing useful200 with a fallback still URL
Sume job completedn/a200 with the stored video_url
Sume job failed404 or 5xx, Braze retries or blanks200 with the fallback URL, then alert yourself
Unknown user key404, empty string200 with the fallback URL

How do I read the state?

Read GET /v1/jobs/:id/status and stop on completed, failed or canceled. Do the fetch of /result only when the job is completed. The lookup itself should read your own store, not call Sume, so it stays inside Braze's 2 second budget; a job-state change updates the store through the webhook.

Redirects are not followed by Braze, so store the final https://media.sume.com URL, not a short link that redirects.

curl https://api.sume.com/v1/jobs/job_123/status \
  -H "Authorization: Bearer $SUME_API_KEY"

curl -i https://api.sume.com/v1/jobs/job_123/result \
  -H "Authorization: Bearer $SUME_API_KEY"
# 409 job_not_completed until the job is ready

What fallback works well?

A still frame or a static banner at the same aspect ratio keeps the layout stable. The message can read right with the fallback and switch to the clip on the next send. The first post in this series covers the 2 second limit.

Sources

Related posts

More in Integrations

All Integrations posts

Written by Sume