soundtrack_fade_exceeds_output: a bed fade longer than a short clip
Sume rejects soundtrack.fade_out_seconds longer than audio.duration_seconds. The fade also caps at 10 s. For a 6 s Short, use a 1 to 2 s fade.

soundtrack_fade_exceeds_output appears when soundtrack.fade_out_seconds is larger than audio.duration_seconds. The fade-out of a music bed is also capped at 10 seconds in the schema. For a short clip, choose a fade well below the length of the output; the hint is shorten_soundtrack_fade.
The error is easy to hit when a template sets a fixed fade, such as 8 seconds, and is reused on a 6 second hook clip. YouTube Shorts run from very short up to 3 minutes (YouTube Help, read 2026-10-05), so one template across lengths needs a rule that scales the fade.
Three different fade limits
There are separate fade controls in Timeline 1.0, and each has its own code. Mixing them up is the usual cause of a wrong fix.
| Field | Range | Error |
|---|---|---|
| output.fade_in_seconds, fade_out_seconds | 0 to 5 s, sum within output length | edge_fades_exceed_output |
| soundtrack.fade_out_seconds | at most 10 s, within output length | soundtrack_fade_exceeds_output |
| video[].transition.duration | at most 1 s and 50% of the shorter neighbor | transition_too_long |
| soundtrack.duck_db | 0 to 20 dB, needs a real spine | duck_requires_audio_spine |
A fade that scales with the clip
A simple rule is a fixed share of the output, clamped to the cap. For a 6 second clip a 1 second fade keeps most of the bed audible; for a 180 second Short the cap of 10 seconds is more than enough. This helper returns a value the schema accepts.
def bed_fade(duration_seconds, share=0.1):
return round(min(10, max(0.5, duration_seconds * share)), 2)
for length in (6, 30, 180):
print(length, bed_fade(length))Using the value
Put the result in the render body next to the bed. Keep loop: true if the bed is shorter than the spine, so the fade lands at the end of the output and not at the end of a short file.
{
"audio": { "mode": "silence", "duration_seconds": 6 },
"soundtrack": {
"url": "https://media.sume.com/artifacts/artf_demo/bed.mp3",
"loop": true,
"fade_out_seconds": 0.6
},
"video": [
{ "source_url": "https://media.sume.com/artifacts/artf_demo/a.mp4", "start": 0, "duration": 6 }
]
}Why the cap exists
The 10 second ceiling and the within-output rule are both validated at admit, before a worker starts, so a failing request costs nothing and returns quickly. That is deliberate: a fade longer than the clip would otherwise render a bed that never reaches full volume, which is a quality bug that is hard to notice by ear. When you batch many clips of different lengths, run /plan on one representative of each length bucket, not on every clip.
When this is not the problem
If your fade is within range and the bed still ends abruptly, the bed may be shorter than the spine without looping. Sume reports a soft warning for that case rather than failing. Warnings appear in the render result, not in /plan, because a plan cannot predict short-source behaviour.
Sources
Related posts
More in Media tools
- Timeline output size: 256 to 2160 per side, so no 3840x2160
Sume Timeline 1.0 takes even output width and height from 256 to 2160, default 1080x1920. What that means for 4K, 2560x1080 ultrawide and portrait masters.
- Swap the offer tail on 40 winning video ads for Cyber Monday: $12.07
Keep the first 12 s of 40 Black Friday winners, cut to a new end card in Timeline at $0.10 each, and burn the Cyber Monday code with $0.20 cues: $12.07 in all.
- Tall phone screen recording to 9:16: crop height 0.8215 and a y offset
A 1170x2532 screen recording is taller than 9:16. Keep the full width, crop height 0.8215, and choose y to drop the status bar. Request and numbers.
- Tech review intro music: a 20-second sting and bed
Make a 20-second synth intro bed for a tech review channel that you can reuse in every video: one generation and a one-minute render, $0.225 on Sume.
Written by Sume