Music API timeout at 30 seconds: poll or webhook instead
A song can outlast Sume's 30-second wait. The wait bounds the HTTP call, not the job, so submit async and poll the status URL, or use a webhook.

A music job can outlast the 30-second wait, and that is expected. On Sume, wait_timeout_seconds is clamped to 0..30 and bounds how long the HTTP request blocks, not how long the job runs. Submit with async, then poll status_url, or pass a webhook_url.
Google's Lyria page lists Lyria 3.5 songs at "a couple of minutes". Sume's behavior is from Jobs and results, read 2026-09-30.
What happens when the wait runs out?
The response is still 2xx and still carries the job id. The envelope has status_url, result_url, events_url and cancel_url, plus a sync object whose timed_out is true when the wait returned early. You must continue with GET status_url, honoring next_poll_after_seconds when present, and must not submit a new paid job for the same intent.
Does mode subscribe give progress?
No. mode: "subscribe" is an alias of sync: the same 30-second wait, not an event stream. There is no SSE or WebSocket transport on the Developer API, and GET /v1/jobs/:id/events is a pull snapshot.
Which mode should a music job use?
| Mode | Behavior |
|---|---|
sync / subscribe | Bounded wait, at most 30 s; may return a running job |
async | Returns at once with polling URLs |
webhook | Returns at once; callback on the terminal state |
How do I fetch the audio?
Poll status until terminal, then read the result. The audio artifact is in result.artifacts[] where type is audio. The Music Router accepts metadata, mode, webhook_url and wait_timeout_seconds; for a callback receiver, see music webhook callback.
curl https://api.sume.com/v1/jobs/job_123/status \
-H "Authorization: Bearer $SUME_API_KEY"
curl https://api.sume.com/v1/jobs/job_123/result \
-H "Authorization: Bearer $SUME_API_KEY"Sources
Related posts
More in Developers
- Sume music job says sume/music-auto: which engine ran?
job.model echoes the id you requested; job.request.routed_model names the engine that ran, such as lyria-3.5. Read both fields on the job envelope.
- AI music prompt max length: 5000 characters on Sume
Sume's Music Router accepts a prompt of 1-5000 characters. What to spend them on: a seven-axis brief, section markers and exclusions, in one positive prompt.
- n8n Wait node under 65 seconds: how to poll a Sume job
n8n keeps waits under 65 seconds in memory and saves longer ones to the database. Poll a Sume job with next_poll_after_seconds, or switch to a webhook resume.
- Next.js image SSRF fix: narrow remotePatterns for Sume
Next.js patched an Image Optimization SSRF via allow-listed remote URLs. Allow only media.sume.com for Sume images, and never raw provider hosts.
Written by Sume