Error and Troubleshooting Reference
Start with status, then classify the stable ordered reasonCodes. Do not classify by exception text, and do not report INCOMPLETE as a business failure.
Diagnose by stage
| Stage | Typical reason codes | Likely cause | First action |
|---|---|---|---|
| Project configuration | CONFIG_MISSING, CONFIG_AMBIGUOUS, CONFIG_PARSE_FAILED | Missing or multiple root configs; YAML/JSON binding failure | Keep one .blogeverify.yaml and validate it against the schema |
| Scenario / Policy | SCENARIO_*, POLICY_*, REQUIRED_CASE_MISSING, REQUIRED_EXPECTATION_MISSING | Invalid references, inventory, Requirement, or limit | Fix the document before rerunning runtime code |
| DSL / graph | DSL_*, GRAPH_*, STREAM_DURABLE_UNSUPPORTED | Parse/compile error, disabled Preview feature, unsupported combination | Lint the DSL and confirm the selected entry-point boundary |
| Fixture / control | FIXTURE_*, CONTROL_*, UNDECLARED_EFFECT_* | No matching rule, wrong consumption, undeclared effect, incompatible double | Compare call site, input, port descriptor, and consumption |
| Business contract | EXPECTATION_*, CONTRACT_*_UNMET, METAMORPHIC_RELATION_VIOLATED | Execution completed but observed facts do not match | Inspect the Case observation, assertion ID, and counterexample |
| Assurance / governance | VERIFICATION_DEPTH_UNMET, REPLAY_*, GOVERNANCE_*, ORACLE_* | A Policy obligation or independent evidence requirement is missing | Add the required evidence; do not silently lower Policy |
| Durable | DURABLE_*, TEMPORAL_*, STREAM_DURABLE_UNSUPPORTED | Invalid action transition, session, clock, checkpoint, or temporal contract | Start at the first incomplete action and suspended-node set |
| Property / shrink | PROPERTY_PLAN_INVALID, PROPERTY_INPUT_DRIFT, PROPERTY_SHRINK_INCOMPLETE | Invalid generator/cohort or a failure cannot be reproduced under the shrink contract | Check finite domain, seed, original reason order, and budget |
| Resource / harness | RESOURCE_LIMIT_EXCEEDED, HARNESS_TIMEOUT | Document, candidate, artifact, or runtime limit exceeded | Reduce the bounded input or evidence; Policy cannot exceed platform hard limits |
| Source binding | SOURCE_BINDING_*, *_IDENTITY_MISMATCH, *_DRIFT | Git, input, operator, classpath, profile, or output path changed | Return to the original clean worktree and receipt |
| Evidence / publication | EVIDENCE_*, *_PROJECTION_MISMATCH, *_INCOMPLETE | Missing files, inconsistent seal/receipt, or atomic publication failure | Preserve diagnostics; regenerate from a clean output directory |
| Comparison / toolchain | COMPARISON_*, TOOLCHAIN_* | Multiple change axes, untrusted child/protocol, or classpath drift | Freeze common inputs and retain one intended change axis |
| Reactor | REACTOR_*, ROOT_COORDINATE_* | Root POM, module inventory, child receipt, or coordinate mismatch | Recheck the direct-module inventory and Maven root coordinates |
Retry decision
| Condition | Retry? |
|---|---|
FAIL | No blind retry. Fix the business implementation or declared contract first. |
Document/configuration INVALID | Rerun only after changing the invalid input. |
HARNESS_TIMEOUT | Confirm customer code stopped; create a new runner if the previous instance is poisoned. |
RESOURCE_LIMIT_EXCEEDED | Reduce documents, samples, candidates, or evidence. Policy may lower a limit but cannot raise a platform hard limit. |
Publication/persistence INCOMPLETE | Repair storage or atomic-move capability, clear the failed output, then rerun. |
| Source-binding drift | Do not mint a new receipt to hide the change; freeze the new source state and execute a complete new run. |
Preserve these facts
- Top-level
statusand orderedreasonCodes. - The first non-passing Case, action, sample, or comparison child.
runId, Suite/Case IDs, and artifact directory.- The externally retained receipt.
- Git commit and
git status --short. - Java and Maven versions.
- Whether customer bootstrap executed and whether publication began.
Digested artifacts do not store raw context, Fixture responses, or expected payloads by default. Keep sensitive values in the caller's governed logs; do not change the evidence wire merely to make troubleshooting more verbose.
For lifecycle and boundary context, continue with the User guide. For format mismatches, use Evidence versions.