Sale banner compose errors: not a still, wrong axis, clamped duration
Fix the stable Sume Timeline compose refusals for a sale banner: compose_image_not_still, compose_image_region_wrong_axis and a clamped duration warning.

Which refusal is it
If a Sume compose job for a sale banner fails, read the stable code. Most come from three mistakes: the "image" is not a still, the region does not match the split, or the layout vocabulary mixes stack and overlay keys. Warnings never fail a job.
Compose takes one still and one video and returns one MP4 shot, at a flat $0.02 per job (confirm in GET /v1/catalog).
The codes
| Code | Meaning | Fix |
|---|---|---|
| compose_image_not_still | image.url is not a still | Send a PNG or JPEG artifact |
| compose_video_not_video | video.url is not a video | Send a video artifact |
| compose_image_region_wrong_axis | left/right on horizontal split, or top/bottom on vertical | Match region to split |
| compose_stack_takes_no_overlay_layout | stack job carries overlay keys | Drop position, width_ratio, margin_ratio |
| compose_duration_clamped_to_source | warning: video.duration ran past the file | Shorten duration or accept the clamp |
| unsupported_media_source | off-host URL | Import with POST /v1/media-imports first |
A request that passes
curl -sS -X POST https://api.sume.com/v1/timeline-1.0/compose \
-H "Authorization: Bearer $SUME_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: fix-banner-001" \
-d '{
"operation": "overlay",
"image": { "url": "https://media.sume.com/artifacts/artf_demo/sale-plate.png" },
"video": { "url": "https://media.sume.com/artifacts/artf_demo/product-clip.mp4", "duration": 8 },
"layout": { "position": "bottom", "width_ratio": 0.8, "margin_ratio": 0.06 }
}'Read the result
Poll the job envelope at /v1/jobs/:id/status and /result; there is no compose-specific GET. A finished result is kind: timeline_compose with video_url and duration_seconds. Client-sent ffmpeg fields such as filtergraph, codec or crf are rejected with 400, because the server compiles ffmpeg itself.
Sources
Related posts
More in Media tools
- Cost of subtitling 20 Shorts in 5 languages: 100 caption jobs
20 Shorts x 5 languages is 100 Video captions jobs. Price it at $0.20 each, plan the idempotency keys, and know what a failed job costs.
- Cut a 3-minute Reel into a 60-second teaser with video trim
Video trim returns a new MP4 for $0.02: start plus duration, exact or keyframe precision, optional audio drop. How to cut a teaser and re-base your timings.
- Cut a 5 minute episode into three 30 second teasers for 6 cents
Three video-trim jobs at $0.02 each cut three 30 second teasers from a 5 minute episode. Pick hooks at 0, 90 and 240 seconds and add a tail card in Timeline.
- Cut a clean voice reference from video: audio detach range, mono wav
Sume's audio detach takes a start and end range and can output mono wav at 16 kHz. Cut 10 seconds of a single speaker for $0.01, then check it before use.
Written by Sume