Crossfade longer than 1 second: the Timeline transition limit
Timeline 1.0 transitions are capped at 1 second and 50 percent of the shorter neighbouring clip. Longer ones return transition_too_long. What to do instead.

A Timeline 1.0 transition cannot be longer than 1 second, and it also cannot exceed 50% of the shorter neighbouring clip or be shorter than one output frame. A longer request is refused with transition_too_long, so a 3-second crossfade needs a different construction.
Adobe's Premiere 26.5 notes use "a 3-second transition" as an example prompt for its Generative Media Tool, which produces a clip. Sume's transition field is a parameter on a cut, not a generated clip. The limits come from https://docs.sume.com/models/timeline, read 2026-10-01.
What exactly are the transition limits?
Transitions go on video[].transition of slots after the first; the first slot's transition is refused as transition_on_first_segment. Types are fade, wipeleft, wiperight, slideup, slidedown and dissolve.
| Rule | Error code |
|---|---|
| Duration at most 1 second | transition_too_long |
| At most 50% of the shorter neighbouring clip | transition_too_long |
At least one output frame, aligned to output.fps | transition_not_frame_aligned |
| Not on the first slot | transition_on_first_segment |
| No more than 8 adjacent fades | too_many_chained_transitions |
How do I get a slower blend anyway?
The docs do not describe a way to exceed the cap with a parameter, so any longer blend is something you build from the pieces they do describe. One option is to make the blend its own slot: generate or render a short transition clip and place it between the two scenes, each with its own short transition. Another is to lengthen the neighbouring slots so 50% allows the full second, which does not go past one second but may feel closer to what you wanted. Check either with the unbilled /plan call before rendering.
Why does my fade fail at 24 fps?
Frame alignment: the duration has to land on whole output frames at the output.fps you set (24, 25, 30 or 60) or the sources' rate if omitted. See 24 vs 30 fps in Timeline output for how that rate is chosen. For the full render shape, start from assemble long-form video.
Sources
Related posts
More in Developers
- Cancelling a Trigger.dev run does not cancel the Sume job
Trigger.dev cancel stops the task and its child runs. A Sume job that already started generating cannot be cancelled, and still bills. Store the job id.
- Trigger.dev public tokens show Sume progress without the API key
Hand the browser a Trigger.dev read-only public token for one run while the task holds the Sume key. The Sume key never leaves the server.
- Trigger.dev retries and Sume errors: skip 4xx, wait on retry-after
Trigger.dev retries any uncaught throw. Use catchError to skip Sume errors that cannot succeed, and read the retry-after header on a 429.
- Trigger.dev replay reuses the payload: key the Sume submit from it
A Trigger.dev replay starts a new run with the same payload. Derive the Sume Idempotency-Key from that payload, not a random id, or a replay bills twice.
Written by Sume