Render Failures

Video renders depend on Playwright, FFmpeg, and disk space. When a render fails, the failure mode points at one of these.

Playwright launch failed

The render engine uses a bundled Chromium via Playwright. If the binary is missing or incompatible with your OS:

  • Desktop app — uninstall and reinstall; the installer ships the correct Playwright build for your platform.
  • Self-hostedcd backend && ./venv/bin/playwright install chromium to re-download.

The log line is usually Could not launch Chromium or Executable doesn't exist at ….

FFmpeg failed mid-encode

Look for ffmpeg lines in server.log (see Backend Will Not Start for the log locations). Common causes:

  • Dimensions not divisible by 2 — H.264 requires even width and height. The editor warns about this in the export dialog; choose a different resolution.
  • Codec not available — H.265 (HEVC) needs the right FFmpeg build. The bundled FFmpeg supports it; self-hosted installations may not.
  • Disk full — the encoder fails when it cannot write the output. Check disk space.

Out of memory

Long renders at high resolution can exceed available RAM. Symptoms: Chromium tab crashes, FFmpeg killed by the OS.

  • Lower the export resolution.
  • Close other heavy apps.
  • For long projects, render in chunks and concatenate.

Frames render but the file is corrupted

Usually FFmpeg encoding interrupted at the end. Causes:

  • App quit during render — relaunch and try again.
  • Disk filled at the last moment — free space and retry.

The render writes to a temp file and renames at the end; if the rename failed you may find a *.tmp file in the board folder. Safe to delete.

Long renders die at the same frame every time

A bad source asset is the most common cause. The renderer reads each frame, and a corrupted MP4 in the timeline can crash Chromium predictably.

Bisect: render the first half, then the second half. Whichever fails contains the bad asset. Open suspicious clips in the lightbox and watch for stutter.

Cancel a stuck render

The progress overlay has a Cancel button. If the UI is frozen, kill the render worker process:

# Desktop app
ps aux | grep moodboard-backend | grep -v grep
kill -9 <pid>

# Self-hosted
kill -9 $(lsof -ti:3003)

The app restarts the worker on the next render.

Where to go next

Was this helpful?

0

Updated

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *