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.

5 min readSume
All posts

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

Timeline compose refusals and warnings (Sume docs)
CodeMeaningFix
compose_image_not_stillimage.url is not a stillSend a PNG or JPEG artifact
compose_video_not_videovideo.url is not a videoSend a video artifact
compose_image_region_wrong_axisleft/right on horizontal split, or top/bottom on verticalMatch region to split
compose_stack_takes_no_overlay_layoutstack job carries overlay keysDrop position, width_ratio, margin_ratio
compose_duration_clamped_to_sourcewarning: video.duration ran past the fileShorten duration or accept the clamp
unsupported_media_sourceoff-host URLImport 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

All Media tools posts

Written by Sume