Authoring a 3D model layer through the API (not the UI), it is possible to produce a project that saves cleanly, passes the sanitizer, renders to completion and reports success – while the model is simply absent from every frame.
What I did: a clip with mediaType "model3d" and url "", plus a timeline item carrying a complete and valid model3dConfig (source "preset", preset "iphone_17", baseRotation, env intensity/exposure/rotation, lights key/fill/rim, screen artwork url).
The project round-tripped through PUT and GET with model3dConfig preserved verbatim – nothing was stripped or rejected. The render job completed at 100% with a normal result payload. The output frames contained only the background: no model, no error, nothing in the job's error field.
Setting the clip url to the sentinel "model-preset:iphone_17" made it render correctly, including the screen artwork and the environment lighting.
The request: either treat a model3d clip whose url is not a resolvable model source as an error at save or at render time, or fall back to deriving the url from model3dConfig.preset when the config already names one. Silently rendering an empty frame and reporting success is very hard to diagnose, because every signal available to an API client says the operation worked.
Related, possibly the same area: v8.7.48 fixed a console error where a clip-URL health check HEAD-fetched the preset sentinel and logged "model-preset URL scheme is not supported". That suggests the sentinel is understood in some code paths but not validated in others.
Steps to reproduce
1. POST a video project containing a clip: { mediaType: "model3d", source: "LOCAL", url: "", name: "iPhone 17", duration: 4 }.
2. Give its timeline item a full, valid model3dConfig with source "preset" and preset "iphone_17".
3. POST /render-onserver-job and poll to completion.
4. Inspect any frame of the output.
Expected
Either the model renders (config already names the preset), or the save/render fails with a clear message about the clip url.
Actual
Job completes at 100% with a valid result and no error. Every frame shows only the background – the model is absent. Changing the clip url to "model-preset:iphone_17" renders it correctly.
Context
Video Editor, 3D model layer authored via the API rather than the Add Layer UI. Board id New_Pixelgbra_Website. Project 1080×1920, 30fps. Preset iphone_17.
Environment
App version: 8.8.0
Platform: Windows 11 (AMD64)