Great Expectations "Checkpoint ... failed" blocks CI
A Great Expectations Checkpoint ran one or more ExpectationSuites plus its actions and returned success: false. The checkpoint is the unit you gate CI on, so a false result must fail the step.
What this error means
A great_expectations checkpoint run (or context.run_checkpoint) reports overall failure, but the workflow either continues or the message is buried in logs.
Checkpoint "nightly_orders" ran 2 validations.
orders.warehouse: False
orders.freshness: True
Checkpoint result: success=FalseCommon causes
A bundled suite failed validation
The checkpoint aggregates suites; if any one is unsuccessful the whole checkpoint is false. The per-suite lines show which one.
The CLI exit code is ignored
Older CLI invocations returned 0 regardless. Without checking the result explicitly, CI does not fail even when the checkpoint does.
How to fix it
Run the checkpoint and fail on false
- Invoke the checkpoint from Python and inspect
result["success"]. - Raise
SystemExit(1)when it is false. - On modern CLI, rely on the non-zero exit it now returns for a failed checkpoint.
- name: Data quality checkpoint
run: |
great_expectations checkpoint run nightly_orders
# modern CLI exits non-zero on a failed checkpoint, failing the stepRead the per-suite breakdown
Open the printed per-validation lines or Data Docs to find which suite failed, then fix that data or expectation rather than the checkpoint wrapper.
How to prevent it
- Gate CI on the checkpoint result, not on the presence of logs.
- Keep one checkpoint per pipeline stage so failures are scoped.
- Upload Data Docs so the failing validation is one click away.