Janitor AI’s error code 429 gets misdiagnosed constantly, because the same three digits can come from four different places. The fix depends on which one failed.
This guide covers what 429 means at each layer, OpenRouter’s rate-limit numbers as checked on September 25, 2026, and six fixes worth trying. It also covers the site-level “status code 429” that has nothing to do with your proxy.
If you’re looking for a general “my Janitor isn’t responding” walkthrough, head to our broader troubleshooting guide on why Janitor AI isn’t working. This article is specifically about the 429 family.
What error code 429 means at each layer
HTTP 429 is the standard “Too Many Requests” response, as documented by MDN. The official definition is that the user has sent too many requests in a given time window.
In Janitor AI, the wording stays the same but the actual source of the rate-limit changes depending on which layer of the stack fails.
Your request travels through up to four systems before it returns a reply. Janitor AI’s interface receives your message and either calls JanitorLLM directly, or routes the call out to a third-party proxy.
If you’ve configured OpenRouter, your call hits OpenRouter first. OpenRouter then forwards it to one of the providers hosting the model you picked, such as Chutes, and that provider runs the model.
OpenRouter’s own rate-limit documentation confirms the split. A 429 can come from OpenRouter’s platform limits or from “the upstream provider, when the provider serving your request is rate limiting or at capacity”.
Any one of those four layers can return a 429. The error wording often looks identical, but the cause and the fix are completely different.
| Failing layer | What is rate-limited | Who triggers it |
|---|---|---|
| Janitor infrastructure | Janitor’s own servers, including the character list | JanitorLLM users, and anyone browsing the site during an outage |
| OpenRouter (proxy) | Your free-model allowance: 20 requests a minute, 50 or 1,000 a day | OpenRouter users on models ending in :free |
| Provider (Chutes and others) | The host’s spare capacity for one model | Direct Chutes users, and OpenRouter users routed to that host |
| The model | Demand piling onto one popular model | Anyone on the busiest model of the week, which on Janitor is usually a DeepSeek build |
If you would rather not manage a proxy at all, Candy AI needs no API key, and its paid plans include unlimited text chat for $13.99 a month, or $47.88 billed yearly.
The exact error text and what each variant tells you
The wording of a Janitor 429 tells you which layer failed, so read it before you try any fix. The table matches seven common messages to their source.
| Exact message | What this is telling you |
|---|---|
Proxy error 429 infrastructure is at maximum capacity | Chutes, the provider, has no spare capacity for that model right now. Try again later, as the message says, or switch models. |
Proxy error 429 rate limited upstream | OpenRouter is passing on a provider’s throttle. Janitor’s guide says to use a different model or a paid version. |
Rate limit exceeded: free-models-per-day | You used your OpenRouter free-model allowance for the day, 50 requests or 1,000 with 10+ credits bought. It refills at midnight UTC. |
Provider returned error 429 | The model endpoint actively rejected your request. Check the model’s Uptime tab on OpenRouter, then try a different model. |
Unknown response: [object Object] | Cryptic, but in Janitor this usually still means a message-limit hit. |
ErrorUpstreamFault:True | Janitor’s guide reads this as the model’s own servers being down. Switch models or wait. |
Error getting characters: Request failed with status code 429 | Janitor’s own site is throttling page loads, usually during an outage. No proxy fix touches it; see below. |
Most Reddit threads lump these together, and the fixes do not transfer between them.
Waiting and retrying is the fix Chutes’ own message suggests for “infrastructure is at maximum capacity”. The same wait does nothing if you’ve hit “free-models-per-day,” because that one resets only at midnight UTC.
“Error getting characters: Request failed with status code 429” comes from Janitor itself, so your proxy settings play no part in it. The message names characters rather than a model, and it appears when the site cannot load the character list, often while your saved chats still open. The Error getting characters fix in our Janitor AI troubleshooting guide has a one-message test that tells it apart from a proxy 429.
It clusters around Janitor’s own incidents. On September 11, 2026 Janitor’s changelog said “the site is very unstable right now” while it upgraded servers, and the same day it reported search servers “under heavy load”. Reddit threads about the error and the missing character list followed on September 12 and 14, one reading “I can’t view characters in the site”.
Stop refreshing, since every reload is another request against the limit, and check the changelog for an incident post. During an outage on August 2, 2026 the same code arrived with a waiting-room screen, and users posted estimated waits from 96 minutes to about 6,000.
Rate-limit math behind the free and paid tiers
OpenRouter’s free models run on two limits at once, a per-minute cap and a per-day cap. Both numbers below come from OpenRouter’s rate-limit documentation as read on September 25, 2026.
If you have bought fewer than 10 credits in total, OpenRouter caps you at 50 requests a day across every model whose ID ends in “:free”. Buy at least 10 credits and the cap rises to 1,000 a day; OpenRouter grants it from 9 credits to absorb rounding and top-up fees.
The moment you cross the cap, every request returns 429 until the daily counter refills. Janitor’s own OpenRouter error guide adds that “even error messages count toward this limit”, so three failed retries cost three of your 50.
That jump is twenty times the allowance for a one-time purchase, and the credits can pay for paid models, though OpenRouter’s FAQ says it may expire unused credits a year after purchase. At 50 requests a day, a roleplayer who regenerates often can burn the whole allowance in one evening.
The second limit is a per-minute cap that heavy regenerating can hit. OpenRouter allows 20 free-model requests per minute, the same with or without credits, while Janitor’s help center still quotes 10 a minute with a 3-hour reset.
If you slam the regenerate button more than 20 times in 60 seconds chasing a better reply, you’ll trigger a 429 even though you have not reached the daily cap. That’s the “transient 429” pattern, and it clears on its own once the minute passes.
A persistent 429 is different. If 5 minutes of waiting doesn’t help and the message says free-models-per-day, you’ve crossed the daily cap, which Janitor’s guide says refills at midnight UTC. That is 8:00 PM Eastern or 5:00 PM Pacific while US daylight saving time runs, and 7:00 PM or 4:00 PM in winter.
Six fixes, in the order to try them
Try these six in order, starting with the reset steps from Janitor’s own troubleshooting guide. Match them to your error wording from the table above before you start.
Fix 1, the double-refresh maneuver
Open your proxy configuration in Janitor AI and confirm it says Active. Click Save Settings even if you haven’t changed anything.
Then refresh the whole Janitor AI page, reopen the config and click Test. These are the “Fix-It First” steps in Janitor’s own OpenRouter error guide.
The unchanged “save” is the part most guides skip.
Fix 2, re-enter the API key
Delete the API key from your Janitor AI settings, click save, paste the same key back, save again, then refresh.
Janitor AI’s own documentation warns against using the “Check Key/Model” verification button in the settings panel for this purpose. It’s known to be buggy and frequently returns false network-error messages even when the key is fine.
Save and refresh is the supported way to verify a key is live. If the same key keeps failing, generate a fresh one in OpenRouter, since Janitor’s guide notes that keys “sometimes bug out”.
Fix 3, model rotation
If the error wording is “rate limited upstream” or “Provider returned error 429,” the bottleneck is the model, so switch to a different one.
Free model IDs rotate, so copy the current ID from the model’s page on OpenRouter instead of trusting any list. On September 25, 2026 OpenRouter listed 20 models ending in “:free”, none of them a DeepSeek or Qwen 2.5 model, and two of them were set to expire that same day.
Examples live on that date were z-ai/glm-5.2:free and nvidia/nemotron-3-ultra-550b-a55b:free. Nemotron 3 Ultra and GLM 5.2 are the second and third most-used models on OpenRouter’s Janitor AI app page on that date.
The top one is DeepSeek V3.2, at 249 billion tokens, and OpenRouter listed an expiration date of September 28, 2026 for deepseek/deepseek-v3.2. Paid builds such as deepseek/deepseek-chat-v3-0324 are still listed and draw on your credits.
A retired ID fails with a different code. Janitor’s guide lists “No endpoints found for model name” as a 404 for a model that “no longer exists”, and its own example swap to deepseek-chat-v3-0324:free now points at a model OpenRouter has removed as well.
Fix 4, top up OpenRouter credits
A one-time purchase of at least 10 credits raises your daily free-model cap from 50 to 1,000 requests. It leaves the per-minute cap at 20, and a 5 USD purchase keeps you on the 50-a-day tier.
If you send more than 50 messages on a typical day, the 10 USD purchase is the only fix on this list that lifts the daily cap. The same credits pay for paid models, so it also opens the paid DeepSeek builds.
Fix 5, lower the context size
In Janitor’s Generation Settings, drop the context window to 2048 or 4096 tokens. Every message then sends fewer tokens to the model.
That helps only where the limit counts tokens, such as the tokens-per-minute cap on a Google Gemini API key. OpenRouter’s free-model caps count requests of any size, so a smaller context cannot clear a daily-cap or per-minute 429 there.
Fix 6, clear your ignored providers in OpenRouter
OpenRouter already retries other hosts of the same model before a provider’s 429 reaches you, and its rate-limit page says to relax provider routing preferences so more providers are eligible. Each provider you ignore in OpenRouter’s privacy settings is one fewer host those retries can use.
Janitor’s guide still says to block a provider called Taragon, but OpenRouter’s list of 109 providers had no Taragon or Targon on September 25, 2026. Clear any old entries from the ignored list, save, and refresh Janitor.
The retries matter most on paid models, since the paid deepseek/deepseek-chat-v3-0324 had three hosts that day while each free model checked had one.
Counterintuitive 429 causes most articles miss
A few patterns repeatedly mislead users into the wrong fix. These are the ones most “Janitor not working” guides skip entirely.
Errors burn your daily quota. Per Janitor’s guide, failed messages count toward OpenRouter’s daily cap too.
The longer you fight a stuck error with rapid retries, the deeper the hole gets. If a bot errors twice in a row, stop and diagnose, don’t spam the retry button.
Gemini 2.5 can fail on its own filters. Janitor’s guide warns that models like Gemini 2.5 “may silently fail if your prompt hits certain filters”, which can look like a rate limit from inside the chat.
Rephrase the prompt or switch models. On September 25, 2026 OpenRouter listed an expiration date of October 20, 2026 for its Gemini 2.5 Pro and Flash models, although Google’s own deprecation page still shows no shutdown date for them.
An OpenRouter privacy setting can block free models outright. OpenRouter keeps separate training settings for free and paid models, and if you opt out, it will not route to providers that may train on your data.
That failure shows up as a 404, “No endpoints found matching your data policy”, rather than a 429. Janitor’s fix is to enable Model Training under OpenRouter’s privacy settings, which live in your OpenRouter account rather than in Janitor.
Worked example, diagnosing a real 429 in under two minutes
Say you’ve just been told “Proxy error 429 rate limited upstream” three times in a row on the same bot, and you’re using a free model through OpenRouter. The error phrasing has “rate limited upstream,” not “infrastructure is at maximum capacity.”
That points to the provider or model layer.
Step one is the double-refresh maneuver, 30 seconds. If it still throws the same wording on the next message, step two is model rotation.
Copy the ID of a different free model from OpenRouter’s model list, such as z-ai/glm-5.2:free on September 25, 2026. Paste it into the bot’s config, save, refresh, and send a fresh message.
If the new model answers, the throttle was specific to the old one and you can stay put for the session. If it also returns 429, read the wording again, because a free-models-per-day message points at your account-level cap on OpenRouter.
Check your OpenRouter dashboard for the daily message count. If you’re at or near 50, you’re done for the day unless you top up.
Total diagnosis time: roughly 90 seconds end to end. The mistake most guides encourage is treating all 429s as “wait it out,” which solves the transient case and ignores the persistent case entirely.
When you should give up on Janitor’s free proxies
The free proxy path has narrowed for active roleplayers. On September 25, 2026 OpenRouter listed no free DeepSeek model at all, and Chutes’ pricing page says it does “not offer a free tier at this time”.
The 50-message daily cap eats heavy users in a single session.
If you find yourself running into 429s more than once a session, the cost-effective move is one of three:
- Buy 10 OpenRouter credits and get the 1,000-request daily limit on free models
- Switch to JanitorLLM, Janitor’s free built-in model, which needs no proxy at all; Janitor’s changelog puts its normal error rate around 0.3 percent, though it rose to about 8 percent during an August 7 to 8 incident
- Move off Janitor entirely to a platform that doesn’t gate access on third-party proxies at all
If option three sounds tempting, the most common Janitor-free destinations are listed in our Janitor AI alternatives guide, and the specific “no API key” subset is covered in our piece on alternatives without API setup.
Both lean toward platforms that bundle the model into the subscription, so there is no proxy key to set up and no OpenRouter daily cap to track.

These comments about deleting and removing the key along with using VPN connections are all garbage. All attempts are one off attempts with everything required in the connection, including keys, to get an inference. You clearly have no clue what you are talking about
Брехня это все, уже 3 месяца ничего абсолютно не работает. Всё перепробовал как и смены моделей. Итог один, 429 ошибка. Хватит врать что это временно на каждых ответах на эту ошибку. Это абсолютно повсеместно.