Skip to main content
No font was found for that text run. Nothing substitutes and nothing warns in the frame. Embed the font as a font asset with a uri next to the document, and reference it with fontAssetId. In the browser, supply a familyFontLoader for family-name runs, or package the document as .clayzo. The CanvasKit player’s onPrewarm reports unresolvedFamilies. See Fonts and assets.
Frames are transparent wherever nothing is drawn, and canvas.backgroundColor is metadata. Draw a full-canvas rect as the first root node.
Cost is per layer, not per second: opacity below 1, isolated groups, shadows and every effect add an offscreen pass per frame, and glass, refraction and custom shaders are evaluated per pixel. Exports render on the GPU only when Chrome, Edge, Brave or Chromium is installed; without one, install one or export from clayzo preview. In the document, animate style.fill.opacity instead of node opacity on solid shapes.
The document uses a construct the WebGL player doesn’t cover: a matte, a nested clip, or a shader calling a colour-space intrinsic. Run checkCoverage and read reasons. Change the document, or ship the CanvasKit player for it. See Choosing a renderer.
Run npx clayzo update, or export the picture alone with --no-audio.
Exports don’t run bindings; every bound property exports at its keyframed value. Author the resting pose into the timeline and let bindings add to it. See Interactivity.
The command needs a sign in. Run npx clayzo login, or set CLAYZO_TOKEN in CI. See Authentication.
The installed CLI is older than the minimum the service supports. Run the command in the error, usually npx clayzo update, which updates the CLI, the project’s packages and the skills together.
A package manager command that clayzo update ran failed. The error names the command; run it yourself to see the full output. For a machine-wide npm install that fails with EACCES, npm can’t write to its global folder: see npm’s guide to resolving EACCES permissions errors.
The project already has newer Clayzo packages than the clayzo running init, which would downgrade them. Run npx clayzo update first, or run npx clayzo@latest init.
The device code wasn’t approved in time. Run npx clayzo login again and approve it in the browser.
A previous preview is still running. It prints its process id on startup; stop it with kill <pid>. Previews also stop themselves after ten minutes with no browser attached.
options or a callback changes identity each render, which recreates the player. Build options with useMemo and keep callbacks stable. See React and Next.js.
Ticks are the time base, and frames are a multiple of them. At 240 ticks per second and 30 fps a frame is 8 ticks; at 60 fps it’s 4. Snap keyframes to that grid.
Still stuck? Email team@clayzo.com.