CODE: cause (fix) on stderr. Read the fix first: it is usually the answer. The exit-code table lists every code.
Common refusals
train refuses with E_NO_BASELINE
The Lineage has no Baseline eval. Runmonte eval <measurement> first. Every Lineage needs its own eval@0.
E_CONFIRM in a script
Two causes, one code. Foreval and train without a TTY: pass --yes. For promote: pass --confirm <measurement-name>, typed exactly.
A lock refuses my command
One lock per Measurement. If the holding process is alive, wait for it ormonte stop it. If it died on this host, the next command reclaims the lock automatically. If a gone box left the lock behind, remove the .lock file in the Measurement’s directory under the data root by hand.
My Run mocked, or refused to mock
Mock against real is stack detection: a Run is real when the serving or container stack is present on the box. On a GPU machine without the stack, Monte refuses to mock silently. Run bootstrap to install the stack. A mock-only Environment mocks freely anywhere. Once a Measurement holds real evidence, Monte refuses mock Runs into it.env install refuses: data does not match the manifest
The frozen data on the box drifted or is incomplete. Re-seed the durable data root from the verified copy. Never re-derive Splits on a box.Training preflight refuses: disk
The refusal names the floor and which filesystem is short, home or the data root. Free disk there and run again.A stuck run
monte logs <measurement>/<run> --follow tails the event file. monte stop <measurement>/<run> terminates it: the row reads as abandoned, and the Ledger keeps it.

