AssayPDF AssayPDF

title: "Troubleshooting" description: "Common errors when running assay commands and how to fix them: missing engines, verapdf failures, checksum mismatches, unknown variant kebabs, and empty score reports." group: "Reference" order: 8

Troubleshooting

SymptomCause / fix
assay: command not foundRun via uv run assay … (the entry point lives in the project venv, not your global PATH).
Engine not available — … (exit 2 from benchmark)The engine binary is not on PATH. Install pdfToolbox / PitStop, or set the engine-specific env var (ASSAY_PDFTOOLBOX_PROFILE_DIR, ASSAY_PITSTOP_PROFILE_DIR). See reproducing.md.
assay validate fails with verapdf errorsConfirm verapdf is on PATH (verapdf --version). On macOS use the headless installer; brew core does not ship it. Use --schema-only to skip verapdf and isolate manifest issues.
assay fetch aborts with checksum mismatchThe upstream GWG asset moved or changed. Re-run with --force to redownload; if the mismatch persists, compare against vendor/checksums.json and open an issue.
assay generate produces a different SHA-256 than the manifestCheck Python and dependency versions (uv sync --all-extras). Generation is deterministic per (seed, code, deps) — diverging deps will diverge bytes.
Unknown variant kebab from --profileVariant kebab names are listed in src/assay_pdf/generator/variants.py. Note they are condensed (e.g. sheetcmyk-cmyk, not sheet-cmyk-cmyk). See cli.md.
assay report shows zero rowsNo *.score.json in results/. Run assay benchmark first; the report aggregates whatever score files are present.
Missing system binary (mutool, ghostscript, etc.)Run just check-deps to see what's missing, then install via brew/apt as in install.md.

For deeper debugging, re-run any command with the global -v / --verbose flag to enable DEBUG logging.

See also known-quirks.md for documented spec edge cases and engine-specific behaviors.