Debugging
Diagnose bad captures and renders with debug frames, manifests, JSONL logs, and render summary files.
Start with the sidecars#
Rollberry writes structured files on every run. They should be your first stop:
<out>.manifest.json<out>.log.jsonl
For render, you also get a project-level *.render-summary.json.
Debug frames#
Use --debug-frames-dir on capture:
npx rollberry capture https://example.com \
--out ./artifacts/debug.mp4 \
--debug-frames-dir ./artifacts/debug-framesOr define debugFramesDir per output in a project file.
The exported PNGs help you answer:
- Did the page load before capture began?
- Was the overlay actually hidden?
- Did the scroll reach the intended area?
- Did a timeline action land on the right frame?
Reading capture manifests#
Capture manifests currently use schemaVersion: 2 and record:
- sanitized input URLs
- viewport, fps, duration, motion, and timeout
- wait condition and hidden selectors
- artifact paths
- result metrics
- warnings and errors
Warnings are especially useful in automation. For example,
scroll_height_truncated means the measured page height exceeded the current
capture limit.
Reading render manifests#
Render manifests add output-specific composition details such as:
- output format (
mp4orwebm) - audio settings
- subtitle mode
- transition settings
- intermediate and final encoding configuration
The render summary file gives you one place to inspect the status of every named output.
Reading JSONL logs#
Logs are newline-delimited JSON events. They are suitable for grep, jq, and
CI artifact collection.
cat ./artifacts/demo.log.jsonlUseful event families include:
- capture lifecycle events such as
capture.startandcapture.complete - render lifecycle events such as
render.startandrender.complete - scene and timeline events for project rendering
- probe warnings when FFprobe-backed metrics are unavailable
Good debugging sequence#
- Read the manifest for warnings and the failing option set.
- Read the JSONL log for the last successful event.
- Export debug frames if the failure is visual or timing-related.
- Reduce the scope to one URL or one output if the project is large.
Common signals#
- Blank first frame: use a stronger
--wait-for - Overlay still visible: fix
--hide-selector - Output already exists: rerun with
--force - Truncation warning: shorten the page, split scenes, or redesign the capture
- Crossfade render failure with probe warnings: ensure FFmpeg and FFprobe are installed correctly