In headless runs, where Claude Code runs without its interactive screen, usually driven by the SDK (the library for calling Claude Code from your own program), Claude Code checks a prompt before running it. If that check interrupts a turn that was not going to send a request, the result is now reported as a failure:
error_during_executionas the result typeprompt_check: the turn was stopped before its prompt was checkedin the errors listaborted_streamingas the terminal reason
Before, the same situation came back as a success with is_error set to false.
There is also a new onPromptCheckInterrupted callback. Messages that were cut from a batch at that point are put back in the queue so they can run later.
Programs built on the SDK can now tell that a turn did not really run, where before it looked like it had succeeded. If your code treats every non-success result as fatal, it may need to handle this case.