conflict. You posted a turn while the session has a run in
flight (status running or judging). Turns are deliberately not queued — a
queued follow-up against rows that don’t exist yet would either block silently or
answer against a moving target, so the API refuses instead and tells you the live
status. Nothing was charged.
The shape
status is live — judging means the sources are done and adjudication is running;
the terminal is close.
How to fix
Wait for the run’s terminal, then post the turn. Any of the three ways to watch works:- Stream
GET …/streamuntil thesession-turnenvelope closes it. - Long-poll
GET …/result?timeout=600— a200means terminal. - Webhook —
session.answered(or.abstained/.error/.stopped) fires at the terminal.
search-done is still judging — posting a
turn the moment you see search-done will hit this error; wait for the terminal
envelope.
If the in-flight run is no longer wanted, POST …/stop it first (a pass already
spending finishes; nothing new starts), then post the turn.