The short answer
Whizi does not show a context limit error. No string in the product mentions a context window or a token limit, because a conversation that outgrows the model is trimmed to fit before the request is sent rather than refused. Nothing tells you it happened. If the model seems to have forgotten the middle of a long chat, that is what you are looking at.
Four things do refuse you outright, and each names itself:
| Message | HTTP code | Trigger |
|---|---|---|
This message is {count} characters, over the 100,000 character limit. Attach a shorter file, or ask about one section at a time. | 400 message_too_long | One message, including text extracted from your files, is over 100,000 characters |
This conversation has {count} messages, over the 100 message limit. | 400 too_many_messages | A single request carried a transcript of more than 100 messages |
Request is too large. | 413 request_too_large | The whole JSON request body went over the route byte cap |
That system prompt is missing or over the 32,000 character limit. | 400 invalid_system_prompt | A system prompt over 32,000 characters |
The {count} in the character limit string is filled in with your real number, formatted with thousands separators. The code beside each string is what shows in a network trace, even when the interface only shows you the sentence.
If you saw a message that names a context length or a token count, it did not come from Whizi. Skip to the last section.
The budget every model gets, and what happens past it
Every model in the catalogue gets the same budget for one turn: 40,000 input tokens and 20,000 output tokens. The Canadian CPA agent is the single exception, at 55,000 input tokens and 40,000 output tokens.
When a conversation runs past that budget, the backend trims history to the model token budget silently rather than refusing. There is no toast, no banner and no error code for it.
The token count Whizi trims against is an estimate rather than a real tokenizer. It can undercount a real tokenizer by up to 1.66 times on JSON, so an allowance of 1.8 times is applied to input to cover the worst measured case.
Switching to a bigger context model does not send more
This is the most common wrong fix. The 40,000 token input budget is flat: it is the same on a model with a one million token window as on a model with a 200,000 token window. Moving a long conversation from one large-window model to another changes nothing about how much of it is sent.
Context window size only changes the budget in one direction, downward. Any model whose window sits below 93,000 tokens gets a smaller, proportional budget instead of the flat one, with output capped at 40 percent of the window and a 1,000 token safety margin held back. 31 models in the catalogue are clamped this way, and the smallest window among them is 6,144 tokens.
So the switch that does help is the opposite of the one people try: moving off a small, clamped model onto an ordinary one. Moving between two large-window models is a change with no effect on length. How switching mid-conversation behaves is covered in switching models mid-conversation.
One detail behind the 93,000 figure, worth knowing if you are reasoning about why a model refused something small: OpenRouter counts input plus the requested maximum output against a model window, not input alone.
A long upload gets cut, and it tells you
Uploads are the usual reason a single message runs past 100,000 characters, because PDF, Word and spreadsheet files are extracted to text in your browser and that text counts against the same cap as anything you typed.
When the extracted text does not fit, it is trimmed rather than refused, and two strings appear. The toast reads Your upload was too large, so only the first part of it was sent. Ask about a smaller section for full coverage. The message itself carries the marker [Attachment truncated: the upload was larger than one message can carry, so the content past this point was not included.] at the cut, so the model can see where its copy stops.
If the message is refused instead of trimmed, you get the message_too_long string from the first table. The fix is the one the error itself names: attach a shorter file, or ask about one section at a time.
One more behavior that reads as forgetting: only the most recent user message carrying attachments has its attachments forwarded to the model. An image or PDF you attached ten turns ago is not re-sent on every subsequent turn. If you need the model to look at it again, attach it again. What Whizi accepts and how extraction works is in supported file types.
One cost note, since length changes what a turn is worth. On Auto, a message over about 6,000 characters routes to the long-form rung at 4 credits, on the reasoning that a message that long is a pasted document rather than a question. A short question routes to the quick rung at 1 credit. The credit scale is in how credits work.
Pinned project files are charged to the prompt on every turn
A pinned project file rides along as prompt text on every single turn in that project rather than once, which is why images are deliberately excluded from the pinned file types.
The caps are their own: each pinned file contributes at most 32,000 characters of extracted text, and the whole project block is capped at 120,000 characters, across at most 10 pinned files. Project custom instructions can be up to 32,000 characters.
Pinned files and instructions are rebuilt into the prompt on every turn in that project, inside the same input budget as the conversation. If a project chat seems to lose the thread faster than an ordinary one, unpin the files you are not asking about.
If you did see a context length error
Then it came from the model provider, not from Whizi, and it reached you through the passthrough. Any upstream failure that is not a rate limit is returned as HTTP 502 with the code provider_error, carrying the provider message, truncated to 300 characters. When the provider error body cannot be parsed at all, you get The model provider rejected the request. instead.
A provider refusal on length will name a context length and a token count. Those numbers are the provider counting your request against a window smaller than the budget Whizi sent, and they are exactly what support needs to look at it.
No interface setting changes this. Switch to another model to get your answer, and send support the exact message including the numbers.
Two more strings people mistake for a length problem. Generation failed mid-stream. and The model stream was interrupted. are connection failures partway through a reply, not length refusals. Retry those. Too many requests. Please wait and try again. is a rate limit at 10 messages per minute, which also has nothing to do with length.
- Whizi has no context limit error: it trims the conversation silently
- Every model gets a flat 40,000 input and 20,000 output token budget per turn
- The Canadian CPA agent is the one exception, at 55,000 in and 40,000 out
- A window below 93,000 tokens lowers that budget, it never raises it
- One message is capped at 100,000 characters, extracted file text included
- One request carries at most 100 messages of transcript
- Only the most recent attachment carrying message forwards its attachments
- A pinned project file rides along as prompt text on every turn in that project
- On Auto, a message over about 6,000 characters routes to the long-form rung at 4 credits
- A message naming a context length came from the provider: switch models and tell support
Frequently asked questions
Does Whizi have a context limit error?
Not a context one. The length messages Whizi does show are counts, not windows: 100,000 characters in one message, 100 messages in one request, 32,000 characters in a system prompt, and a 413 Request is too large. on the whole request body. If the message in front of you names a token count or a context length, it reached you through the 502 provider passthrough and belongs to the model provider.
Why did the model forget something I said earlier in the chat?
Because it was trimmed out of the request before the request was sent. The backend trims history to the model token budget silently rather than refusing, so there is no error to read and no setting that turns it off. Starting a new conversation when the subject changes is the practical answer.
Will switching to a model with a bigger context window let me send more?
No. The input budget is a flat 40,000 tokens on every model in the catalogue, so a one million token window and a 200,000 token window get the same amount of your conversation.
What does "over the 100,000 character limit" mean?
One message went past the per message cap of 100,000 characters and was refused with HTTP 400 and the code message_too_long. Text extracted from an attached PDF, Word file or spreadsheet counts toward the same cap, so an upload is the usual cause rather than typing. The fix is in the message itself: attach a shorter file, or ask about one section at a time in the same conversation.
What does "over the 100 message limit" mean?
A single request carried a transcript of more than 100 messages, and it was refused with HTTP 400 and the code too_many_messages. It is a cap on what one request may carry, not a cap on how long a chat may be. Starting a new conversation for the next subject is the practical answer, and it also gives the model a cleaner view of what you are asking about.
How do I summarize a document that is longer than the limit?
Split it and work section by section in one conversation, which is what the message_too_long string itself recommends. Ask for a summary of each section, then a summary of those summaries. If a single section still runs past 100,000 characters once its file text is extracted, split that section again.
Can I pay for a bigger context budget?
No. The budget is a property of the model in the catalogue rather than of your plan, and there is no setting anywhere that raises it. What a higher plan buys is access to more models and a larger monthly allowance, not more room in a single turn. The plan mapping is in the model reference.