> 6. 200 OK, no answer
Reasoning models sometimes put everything in the reasoning field and hand back content: null, finish_reason: "stop". 345 completion tokens, HTTP 200, nothing to show the user.
A 200 tells you the request was served, not that there's an answer in it. No content and no tool call is a failure, throw and retry.
I ran into this so much I had to modify my harness to handle this.
I ran into this so much I had to modify my harness to handle this.