Skip to content

Read a run

puppi logs prints one run: each attempt’s status, how long the steps took, the error, and the lines from ctx.log.

Terminal window
puppi status
puppi logs <run-id>
puppi logs <run-id> --json

puppi status is the latest run. Pass --run <id> to select another. The engine keeps the newest 100 runs on the list route.

Status Meaning
running The attempt has not settled.
success The producer finished and the checks passed. latest moved.
failed The producer failed. error_class is retryable or terminal.
failed_by_check A blocking check failed after the write. latest stayed on the previous result.
skipped Nothing new arrived, or the asset was already current.
blocked An upstream in this run failed or was blocked, so this asset did not build.
cancelled The attempt was cancelled.

A run’s status is queued, running, success, failed, or cancelled. queued means a run of the same plan is already in flight, and this one waits for it.

error_class is retryable or terminal. A retryable failure may already have been followed by a later attempt with a higher number. The message on the last one includes gave up after … when the budget is spent. See Rate limits and retries.

A check failure looks like this:

check failed: column email missing

ctx.log lines are on the attempt, with a level of debug, info, warn, or error. Secret values are scrubbed before the line is stored. --json prints the attempt objects from GET /api/v1/runs/<id>, including timings, logs, error_class, and error_message.