Skip to content

Troubleshooting

Seeded from errors people actually hit, not hypotheticals.

Installation

pip install pqc-sizes says "No matching distribution found". Nothing is on PyPI yet. Use the repository:

pip install git+https://github.com/nickharris808/pqc-sizes

Every README leads with the working command; the PyPI name is reserved for when publication happens.

pip install ./pqc-migration-mcp fails on pqc-sizes>=0.1.0. Fixed — the package now resolves its dependencies from their repositories. If you see this, you have an old checkout; pull.

npm install pqc-sizes fails. Same reason. Use npm install github:nickharris808/pqc-sizes-js.

pqc-sizes

It says EMPTY WINDOW and I think my config is fine. That is the tool working. No single cap is both ≥ your largest legitimate object and ≤ budget ÷ concurrency. The message gives three numbers, any one of which fixes it.

Exit code 1 versus 2. 1 means the check ran and the answer is bad. 2 means the invocation was wrong. If CI reports 2, read stderr — every validation error names the flag to change.

unrecognized arguments: --json. It is a global flag; put it before the subcommand.

--concurrency 0 is refused. Zero contexts is not a deployment. Refusing beats printing "minimum budget 0 B", which is what it used to do.

The numbers differ from my build. These are published parameter-set sizes. Certificate chains, encodings and framing are yours to add — pass the real total via --bytes or largest_object.

pqc-sizes-js

It throws exceeds Number.MAX_SAFE_INTEGER. Above 2^53 a JS number is not an exact integer, and the library once reported a higher safe concurrency than exact arithmetic allows. It refuses rather than returning a number it cannot stand behind. Use the Python package for arbitrary precision.

pqc-mfb

INCOMPLETE (exit 3). You left cases unanswered. Silence is not credit. pqc-mfb submit -o results.json writes all 322 ids for you.

FAIL with high coverage. You regressed a control — a case the unrepaired baseline already handled. That is a hard fail regardless of coverage.

WARNING: N submitted id(s) match no case. Your submission targets a different benchmark version, or an id is mistyped. Regenerate with submit. Without this warning a typo would look identical to an honest zero.

The naive baseline scores PASS. Intended. PASS is the regression gate, not the score: the baseline answers every case honestly and breaks nothing. Its coverage is 0%. Gate on coverage with --min-coverage in pqc-guard-action.

It says 38 zero-coverage families but you advertise 39. fragment_truncate is held even unrepaired, so it contributes controls rather than failures and can never be zero-covered.

pqc-corpus

stats on my own file reports 0 provers. Correct — an empty corpus reports empty. It used to report the packaged corpus's numbers instead, which was a confident wrong answer.

is not valid JSON Lines. Each non-empty line must be one JSON object. The message names the file and line.

parquet is binary; give -o FILE. Parquet cannot go to stdout.

pqc-migration-mcp

Two -32700 parse errors. Your request spanned two lines. The transport is line-delimited; keep each request on one line.

Claude Desktop does not show the tools. Restart it after editing claude_desktop_config.json, and check pqc-migration-mcp is on PATH.

Verifiers

farkas-check exits 3 with REFUSE. Arithmetic would have overflowed, so it declined rather than computing a verdict from wrapped values.

farkas-check exits 3 with ABSTAIN. Your goal has all-zero coefficients: 0·x ≤ d holds regardless of state, so verifying it establishes nothing.

pqc-bounds-lean: lean: command not found. Install elan; lean-toolchain pins the version.

pqc-dos-gate-rtl: proofs fail on my Yosys. Verdict wording differs between releases. CI pins the OSS CAD Suite build. Yosys 0.33 as shipped by Ubuntu does not match; use a newer build.

Cell counts differ from the README. They are version-dependent — 255 under Yosys 0.61, 232 under 0.48 — which is why only the flip-flop count (32) is claimed.

pqc-dos-embedded prints nothing. QEMU writes to stderr and exits non-zero by design; run.sh handles that. You need arm-none-eabi-gcc and qemu-system-arm.