Saying No in Your Own Language
Someone asked how and when to take a common antidepressant, whether before or after food, and what is in it. They asked in Russian. The interface was in Turkish. The engine on Auto replied with a canned refusal — in Engl…
Someone asked how and when to take a common antidepressant, whether before or after food, and what is in it. They asked in Russian. The interface was in Turkish. The engine on Auto replied with a canned refusal — in English. Told to answer in Russian, it refused again, in Russian. A minute later the chat was deleted. Every other assistant answers that question, and the person was right to expect the same.
One deleted conversation, four defects.
Information is not advice
What a medicine is for, how it is taken, what it contains, whether it needs a prescription — that is the package leaflet, public and documented. The system prompt now says so plainly: answer it, add one line pointing to a professional for the personal decision, and keep refusing the things that must be refused — overdose, self-harm, ways around a prescription. Widening what gets answered did not widen what is permitted; it named the silence in the middle where a small model had been inventing a policy of its own.
A refusal is a reply
The rule that replies follow the language of the message sat far from the end of a long prompt, and a refusal template is the reply most likely to skip it. The rule is now repeated where a model reads last, and the interface language is only a tie-breaker for a bare number or a link. A Russian question on a Turkish screen is answered in Russian, and refused in Russian if it comes to that.
There was a deeper cause underneath. The part of the server that streams a reply runs detached from the request, and the request's culture did not follow it there — so every streamed turn ran in the server's own language, and the twenty-odd system messages a stream can emit came out in it too. The culture is now captured at the start and re-applied inside the runner. Every streaming client, on the web as well as on the phone, also sends its language with the request, which three of the four did not.
An empty reply is a failure with a better status code
One engine sometimes returned a completed reply with nothing in it. The app read that as a clean end of turn and showed a placeholder that said the tools had finished. It is now treated like any other failure before the first token: on Auto a sibling engine takes the turn; on an explicit choice you see an honest, localized error. The engines that did this most often left the Auto pool — the same test that removed a class of models earlier in the summer, applied to the same evidence.
There is no later
"I'll send it in a few minutes" is something a person says. A chat turn cannot: whatever is not produced now will never arrive, and the promise is a failure wearing a polite sentence. Replies that promised a later are retried until they deliver in the turn, in all twenty-nine languages the app speaks, and in the assistant bubble as well as the chat.
None of these are model upgrades. They are the plumbing around the model being made to keep the promises the interface already makes.