[BUG] `rate_limits` field missing from statusLine JSON for Claude Max 20x plan (oauth/firstParty auth)

Resolved 💬 4 comments Opened Mar 28, 2026 by Masashi-Ono0611 Closed May 1, 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?

The rate_limits field is completely absent from the JSON payload piped to the statusLine command, even though I am on Claude Max 20x plan and authenticated via OAuth (firstParty).

Changelog v2.1.80 states:

Added rate_limits field to statusline scripts for displaying Claude.ai rate limit usage (5-hour and 7-day windows with used_percentage and resets_at)

The field was previously appearing but stopped being included at some point around late March 2026 (likely correlated with server-side rate limit changes around March 22–23).

Actual statusLine JSON received (top-level keys only):

[
  "session_id",
  "transcript_path",
  "cwd",
  "model",
  "workspace",
  "version",
  "output_style",
  "cost",
  "context_window",
  "exceeds_200k_tokens"
]

rate_limits is not present at all (not null, not an empty object — simply absent).

Auth status:

{
  "loggedIn": true,
  "authMethod": "oauth_token",
  "apiProvider": "firstParty"
}

Plan: Claude Max 20x (verified in billing settings at claude.ai)

What Should Happen?

The rate_limits field should be included in the statusLine JSON for claude.ai Max plan users authenticated via OAuth, as documented in the v2.1.80 changelog:

{
  "rate_limits": {
    "five_hour": {
      "used_percentage": 42,
      "resets_at": "2026-03-28T15:00:00Z"
    },
    "seven_day": {
      "used_percentage": 15,
      "resets_at": "2026-04-03T00:00:00Z"
    }
  }
}

Error Messages/Logs

No error messages — the field is simply absent from the JSON without any warning.

Steps to Reproduce

  1. Ensure you are on Claude Max plan and logged in via claude login (OAuth/firstParty)
  2. Verify with claude auth status → should show authMethod: "oauth_token", apiProvider: "firstParty"
  3. Configure a statusLine command in ~/.claude/settings.json:

``json
{
"statusLine": {
"type": "command",
"command": "python3 -c \"import json,sys; d=json.load(sys.stdin); print(list(d.keys()))\""
}
}
``

  1. Start a Claude Code session and observe the statusline output
  2. rate_limits key is absent from the printed list

To dump full JSON for inspection:

#!/usr/bin/env python3
import json, sys
data = json.load(sys.stdin)
with open('/tmp/statusline_debug.json', 'w') as f:
    json.dump(data, f, indent=2)

Claude Model

Sonnet (default)

Is this a regression?

Yes, this worked in a previous version

Last Working Version

Unknown — was working sometime before late March 2026. Likely regressed around v2.1.83–v2.1.85 or due to server-side changes around March 22–23, 2026 (see related issue #38335).

Claude Code Version

2.1.86 (Claude Code)

Platform

Anthropic API

Operating System

macOS

Terminal/Shell

Terminal.app (macOS)

Additional Information

Possible correlation with server-side changes:
The disappearance of rate_limits from the statusLine payload appears to coincide with the server-side rate limit behavior changes reported around March 22–23, 2026 (see #38335, #38350). It's possible that the same backend change that caused abnormal rate limit consumption also stopped populating the rate_limits field in the statusLine JSON.

Note on organization accounts:
This account is associated with an organization (masashi.ono@upbond.io's organization), but the subscription is a personal Claude Max 20x plan billed via Stripe. It's worth checking whether organization-scoped accounts are being excluded from rate_limits population unintentionally.

Related issues:

  • #38335 — Rate limits exhausted abnormally fast since March 23, 2026
  • #38350 — Abnormal/inflated rate limit session usage
  • #36383 — (closed) Docs missing rate_limits field documentation

View original on GitHub ↗

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