audio_parts_channel_mismatch: concat needs one channel layout
Timeline audio concat fails with audio_parts_channel_mismatch when parts mix channel layouts. Detach video audio as mono for every part.

audio_parts_channel_mismatch means the parts of a timeline audio concat do not share one channel layout, for example one mono file and one stereo file. The docs mark it as a worker refusal, so it can surface after the job is accepted. Make every part the same layout, then re-run.
Where does the error come from?
From the Timeline audio docs, the neighbouring refusals are:
| Code | When |
|---|---|
audio_parts_channel_mismatch | Parts do not share a channel layout (worker) |
audio_concat_requires_parts | Concat without parts |
audio_concat_takes_no_url | Concat with a top-level url |
audio_concat_takes_no_ranges | Concat with ranges |
How do I make the layouts match?
When parts come from videos, audio detach has a channels field: source (default) or mono. Send channels: "mono" on every detach that feeds the concat and those parts share one layout (mono). Parts from other Sume audio should be checked for layout before joining; the docs do not list the layout of each generator's output.
curl -X POST https://api.sume.com/v1/audio-detach \
-H "Authorization: Bearer $SUME_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: detach-mono-a" \
-d '{
"video_url": "https://media.sume.com/artifacts/artf_demo/a.mp4",
"channels": "mono"
}'Will a retry cost again?
Each timeline audio job is $0.01 flat, so a corrected concat is a new job. The docs do not state how a refused job is billed, so do not assume either way.
How does the job run?
Timeline jobs default to mode: "async". Pass mode: "sync" to wait up to 30 seconds for a 200 finished job, or you get 202 and poll GET /v1/jobs/:id/status and GET /v1/jobs/:id/result; there is no separate GET for the audio or render job. Idempotency-Key is required on the render and audio jobs, and every URL must already be this workspace's media.sume.com audio or video. The channel check runs on the worker, after admit.
Hosted MCP has timeline_audio and timeline_create; the flow is the tool, then jobs_wait, then the result tool. Details are in the Timeline audio docs and Timeline 1.0 docs.
Sources
Related posts
More in Media tools
- audio_parts_shorter_than_duration: fix a Timeline audio spine
Timeline 1.0 refuses audio.parts[] whose declared lengths sum to less than audio.duration_seconds. Add part length, lower the duration, or use silence mode.
- Combine more than 20 audio files: nest the concat jobs
Timeline audio concat takes 1 to 20 parts per job. For 45 files, concat in batches of 20 or fewer, then concat the batch outputs. Four jobs, $0.04 flat.
- Extract audio from a video URL: why example.com is refused
Audio detach only reads a video already on this workspace's media.sume.com. An outside URL fails unsupported_media_source, so import it first, then detach.
- Lyria 3.5 outputs MP3 or WAV: what you get from Sume music
Google lists MP3 by default or WAV for Lyria 3.5. Sume's music request has no format field and returns an audio file; timeline audio can make a wav.
Written by Sume