November 4, 2026CLI 2.12.2Dashboard 2.51.29Docs 2.9.24

Show why a phase failed on the FAIL screen

Operators now see the reason a unit failed right on the FAIL screen, instead of digging through the run logs to decide whether to retest, reseat a cable or reject the unit.

  • Added the message of phase.fail("...") to the FAIL outcome screen, in place of the "Not run" reason of the phases cancelled after it; the phase and the run stay FAIL.
  • Added the message to the uploaded run, where it shows in the phase details and in the API, and to tofupilot run --json; messages from phase.skip(), phase.stop() and phase.retry() come through too.
  • Improved the console output so each message is printed once, and still shown with --quiet.

Try these features today