New

Hand-authored image clip renders as a solid black rectangle in /render-still

0

Building a video project entirely over the API (no desktop editor). A MotionFast title layer renders perfectly, but an ordinary image clip added the same way draws as a solid black rectangle instead of the PNG.

The layer IS being drawn: the black rect appears at the item's correct position and size, and it correctly honours an opacity keyframe track (semi-transparent mid-fade, fully opaque at the end). Only the pixels are missing.

The source PNG is valid and served by the backend itself. Fetching the same media URL returns 200 with content-type image/png and the file opens correctly outside the app.

I could not find anything in references/video-projects.md that specifies extra required fields on an image clip, so I may simply be missing one – if so, documenting it would help agent-authored projects.

Steps to reproduce
1. POST /api/moodboards/{board_id}/video-projects with hand-authored data containing:
clip: { id, source: "REMOTE", mediaType: "image", url: "/media/admin/{board_id}/logo.png", proxyUrl: null, name, duration: 3.0 }
channel: { id, unsnapped: true, items: [ { id, clipId, freeStart: 1.6, trimStart: 0, trimEnd: 1.4, zoom: 0.42, propertyKeyframes: { opacity: […] } } ] }
2. POST /api/moodboards/{board_id}/video-projects/{project_id}/render-still with { "time": 2.6 }
3. Inspect the returned still

Expected
The PNG renders at the item's position, scaled by zoom.

Actual
A solid black rectangle at the item's position and size. Opacity keyframes are honoured (the rect fades in), so the layer is composited – it just has no image data.

Variations tried, all identical result:
– relative url (/media/admin/{board_id}/logo.png)
– absolute url (http://127.0.0.1:{port}/media/admin/{board_id}/logo.png)
– PNG with alpha transparency
– fully opaque PNG with the background colour baked in

Hiding the channel confirms the rect belongs to the image layer, not the MotionFast title beneath it.

Context
Feature area: Video Editor / video-projects API / render-still. Clip mediaType "image", source "REMOTE", added to an unsnapped channel above a mediaType "motion" layer. Project videoSize 1080×1920. The PNG is 1800×400, ~43 KB, written into the board's own media folder and served by the backend at 200 image/png. MotionFast (word-reveal-title) and video clips in the same project render correctly.

Environment
App version: 10.0.10
Platform: Windows 11 (AMD64)

Support Angel