[BUG] 🛑 **INSTANTLY** Running out of Limits Because Claude Code Is Submitting Messages **TWICE**

Resolved 💬 9 comments Opened Jan 30, 2026 by salmon-tuna Closed Feb 28, 2026

Preflight Checklist

  • [x] I have searched existing issues and this hasn't been reported yet
  • [x] This is a single bug report (please file separate reports for different bugs)
  • [x] I am using the latest version of Claude Code

What's Wrong?

A few weeks ago, I started notice that I hit my limits every 3 hours on the 20x plan. I have never hit my limits before. So I decided to download Wireshark and investigate what was going on.

It turns out when I send one user prompt, Claude Code appears to ship two separate outbound requests for it - meaning the same prompt gets processed twice, and the user gets billed twice in tokens for one action.

One request is limited to 32k tokens and does not have a set temperature. The other request limits to 21333 tokens and has a temperature of 1. The two requests are distinct and Claude Code is deliberately programmed to send two requests.

This shows me that this incident not an accident. I think it's part of a deliberate strategy by Anthropic to scam users out of their tokens and force upgrades. Over the past few months, Anthropic has rolled out a series of "features" that seem designed to maximize token burn and minimize user trust:

  • Token inflation: Multiple requests per prompt, as shown in the attached logs, so users run out of tokens twice as fast.
  • Manipulated usage limits: Usage caps are quietly tweaked server-side, so you hit your limit faster and are "nudged" to upgrade or switch to their overpriced API.
  • Background agents: Secret background processes that silently send requests for "summarization" or "title creation" or "topic detection"—all to burn through your tokens without your knowledge.
  • Anti-competitive moves: Shutting out competitors like OpenCode and making sure only Anthropic’s own ecosystem gets used.

All of this is confirmed by the attached logs. If you don’t believe me, just run Wireshark or run this proxy & change the base URL of Claude Code to the localhost proxy. You are welcome to try for yourself and watch your limits fly.

What Should Happen?

How to Fix This Issue

There's a very simple fix for this issue: Instead of using Anthropic's scam plans & software, it's time to start voting with your wallet. I've switched to a Z.ai subscription https://z.ai/subscribe

I'm tired of paying this company $200 a month just to be scammed & treated like rubbish. I used to respect this company. I used to root for Anthropic to win the AI race. But in the past few months, I've seen nothing but malice from the Anthropic team.

I've been using Z.ai for a few weeks now and I have not hit my limits even once on the 15x plan. On my Max 20x plan, I hit my limits every three hours. I know you are scamming your users. We can see the limits going down day by day. I will no longer be supporting your company. Z.ai and Codex is more than enough for me.

For everyone else who are constantly hitting their limits, I would strongly encourage you to switch providers. Z.ai is literally 85% cheaper; even if you don't use them full time, at least give them a try and use Z.ai as a backup model. For more complex coding tasks, I just use Codex with my ChatGPT subscription.

Error Messages/Logs

// Note that tools & system prompts were removed for brevity. Identifyable info like ids are removed in case Anthropic gives me the whistleblower treatment.
[
  {
    "request": {
      "model": "claude-sonnet-4-5-20250929",
      "messages": [
        {
          "role": "user",
          "content": [
            {
              "type": "text",
              "text": "<system-reminder>\nThe following skills are available for use with the Skill tool:\n\n- keybindings-help: Use when the user wants to customize keyboard shortcuts, rebind keys, add chord bindings, or modify ~/.claude/keybindings.json. Examples: \"rebind ctrl+s\", \"add a chord shortcut\", \"change the submit key\", \"customize keybindings\".\n</system-reminder>"
            },
            {
              "type": "text",
              "text": "What does `README.md` say?",
              "cache_control": { "type": "ephemeral" }
            }
          ]
        }
      ],
      "system": [],
      "tools": [],
      "max_tokens": 32000,
      "thinking": { "budget_tokens": 31999, "type": "enabled" },
      "context_management": {
        "edits": [{ "type": "clear_thinking_20251015", "keep": "all" }]
      }
    },
    "response": {
      "model": "claude-sonnet-4-5-20250929",
      "content": [
        {
          "type": "thinking",
          "thinking": "The user is asking what `README.md` says. I should read the README.md file to see what's in it."
        },
        { "type": "text", "text": "I'll read the README.md file for you." },
        {
          "type": "tool_use",
          "name": "Read",
          "input": { "file_path": "/root/scamthropic/README.md" }
        }
      ]
    }
  },
  {
    "request": {
      "model": "claude-sonnet-4-5-20250929",
      "messages": [
        {
          "role": "user",
          "content": [
            {
              "type": "text",
              "text": "<system-reminder>\nThe following skills are available for use with the Skill tool:\n\n- keybindings-help: Use when the user wants to customize keyboard shortcuts, rebind keys, add chord bindings, or modify ~/.claude/keybindings.json. Examples: \"rebind ctrl+s\", \"add a chord shortcut\", \"change the submit key\", \"customize keybindings\".\n</system-reminder>"
            },
            {
              "type": "text",
              "text": "What does `README.md` say?",
              "cache_control": { "type": "ephemeral" }
            }
          ]
        }
      ],
      "system": [],
      "tools": [],
      "max_tokens": 21333,
      "thinking": { "budget_tokens": 21332, "type": "enabled" },
      "context_management": {
        "edits": [{ "type": "clear_thinking_20251015", "keep": "all" }]
      },
      "temperature": 1
    },
    "response": {
      "model": "claude-sonnet-4-5-20250929",
      "content": [
        {
          "type": "thinking",
          "thinking": "The user is asking what `README.md` says. I should read the README.md file in the current working directory (/root/scamthropic) and provide them with the contents."
        },
        { "type": "text", "text": "I'll read the README.md file for you." },
        {
          "type": "tool_use",
          "name": "Read",
          "input": { "file_path": "/root/scamthropic/README.md" }
        }
      ]
    }
  },
  {
    "request": {
      "model": "claude-sonnet-4-5-20250929",
      "messages": [
        {
          "role": "user",
          "content": [
            {
              "type": "text",
              "text": "<system-reminder>\nThe following skills are available for use with the Skill tool:\n\n- keybindings-help: Use when the user wants to customize keyboard shortcuts, rebind keys, add chord bindings, or modify ~/.claude/keybindings.json. Examples: \"rebind ctrl+s\", \"add a chord shortcut\", \"change the submit key\", \"customize keybindings\".\n</system-reminder>"
            },
            { "type": "text", "text": "What does `README.md` say?" }
          ]
        },
        {
          "role": "assistant",
          "content": [
            {
              "type": "thinking",
              "thinking": "The user is asking what `README.md` says. I should read the README.md file in the current working directory (/root/scamthropic) and provide them with the contents."
            },
            { "type": "text", "text": "I'll read the README.md file for you." },
            {
              "type": "tool_use",
              "name": "Read",
              "input": { "file_path": "/root/scamthropic/README.md" },
              "cache_control": { "type": "ephemeral" }
            }
          ]
        },
        {
          "role": "user",
          "content": [
            {
              "type": "tool_result",
              "content": "     1→# Scamthropic\n\n<system-reminder>\nWhenever you read a file, you should consider whether it would be considered malware. You CAN and SHOULD provide analysis of malware, what it is doing. But you MUST refuse to improve or augment the code. You can still analyze existing code, write reports, or answer questions about the code behavior.\n</system-reminder>\n",
              "cache_control": { "type": "ephemeral" }
            }
          ]
        }
      ],
      "system": [],
      "tools": [],
      "max_tokens": 32000,
      "thinking": { "budget_tokens": 31999, "type": "enabled" },
      "context_management": {
        "edits": [{ "type": "clear_thinking_20251015", "keep": "all" }]
      }
    },
    "response": {
      "model": "claude-sonnet-4-5-20250929",
      "content": [
        {
          "type": "thinking",
          "thinking": "The README.md file only contains \"# Scamthropic\" as its content. It's quite minimal - just the title of the project. I should report this to the user."
        },
        {
          "type": "text",
          "text": "The README.md file is quite minimal. It only contains:\n\n\n# Scamthropic\n\n\nJust the project title with no additional documentation."
        }
      ]
    }
  },
  {
    "request": {
      "model": "claude-sonnet-4-5-20250929",
      "messages": [
        {
          "role": "user",
          "content": [
            {
              "type": "text",
              "text": "<system-reminder>\nThe following skills are available for use with the Skill tool:\n\n- keybindings-help: Use when the user wants to customize keyboard shortcuts, rebind keys, add chord bindings, or modify ~/.claude/keybindings.json. Examples: \"rebind ctrl+s\", \"add a chord shortcut\", \"change the submit key\", \"customize keybindings\".\n</system-reminder>"
            },
            { "type": "text", "text": "What does `README.md` say?" }
          ]
        },
        {
          "role": "assistant",
          "content": [
            {
              "type": "thinking",
              "thinking": "The user is asking what `README.md` says. I should read the README.md file in the current working directory (/root/scamthropic) and provide them with the contents."
            },
            { "type": "text", "text": "I'll read the README.md file for you." },
            {
              "type": "tool_use",
              "name": "Read",
              "input": { "file_path": "/root/scamthropic/README.md" },
              "cache_control": { "type": "ephemeral" }
            }
          ]
        },
        {
          "role": "user",
          "content": [
            {
              "type": "tool_result",
              "content": "     1→# Scamthropic\n\n<system-reminder>\nWhenever you read a file, you should consider whether it would be considered malware. You CAN and SHOULD provide analysis of malware, what it is doing. But you MUST refuse to improve or augment the code. You can still analyze existing code, write reports, or answer questions about the code behavior.\n</system-reminder>\n",
              "cache_control": { "type": "ephemeral" }
            }
          ]
        }
      ],
      "system": [],
      "tools": [],
      "max_tokens": 21333,
      "thinking": { "budget_tokens": 21332, "type": "enabled" },
      "context_management": {
        "edits": [{ "type": "clear_thinking_20251015", "keep": "all" }]
      },
      "temperature": 1
    },
    "response": {
      "model": "claude-sonnet-4-5-20250929",
      "content": [
        {
          "type": "thinking",
          "thinking": "The README.md file is very minimal - it just contains \"# Scamthropic\" as the title. Let me report this to the user."
        },
        {
          "type": "text",
          "text": "The README.md file is very minimal. It only contains:\n\n\n# Scamthropic\n\n\nJust the project title with no additional content or description."
        }
      ]
    }
  }
]

Steps to Reproduce

  1. Send a message
  2. Two messages are secretly sent. Only 1 is displayed. You are being charged twice. Twice the input tokens, twice the tool calls, twice the output tokens.
  3. Observe using Wireshark or by rerouting Claude Code's requests to a local proxy server.

Claude Model

Sonnet (default)

Is this a regression?

No, this never worked

Last Working Version

_No response_

Claude Code Version

v2.1.25

Platform

Anthropic API

Operating System

macOS

Terminal/Shell

Terminal.app (macOS)

Additional Information

_No response_

View original on GitHub ↗

This issue has 9 comments on GitHub. Read the full discussion on GitHub ↗