v2.1.89: API Error 400 - system.2.cache_control.ephemeral.scope: Extra inputs are not permitted

Resolved 💬 2 comments Opened Apr 1, 2026 by cwuhui Closed Apr 8, 2026

Bug Description

After upgrading to v2.1.89, every new Claude Code session fails with API Error 400. Downgrading to v2.1.87 resolves the issue.

Error Message

API Error: 400 {"type":"error","error":{"type":"invalid_request_error","message":"system.2.cache_control.ephemeral.scope: Extra inputs are not permitted"}}

Environment

  • Claude Code version: 2.1.89 (both npm global install and standalone ~/.local/bin/claude)
  • OS: macOS Darwin 24.6.0 (Apple Silicon)
  • Node: via Homebrew
  • Working version: 2.1.87

Steps to Reproduce

  1. Install Claude Code v2.1.89 (npm install -g @anthropic-ai/claude-code@latest)
  2. Open any directory (even home directory ~)
  3. Send any message (e.g., "hello")
  4. Error occurs immediately on every new session

Troubleshooting Attempted

  • Removed enabledPlugins (skill-creator@claude-plugins-official) from ~/.claude/settings.json — no effect
  • Cleared ~/.claude/plugins/installed_plugins.json — no effect
  • Debug log (claude --debug) confirms Total plugin skills loaded: 0, yet error persists
  • Tested in multiple directories (home, various project dirs) — all fail
  • One specific project with MCP tools + 3-layer CLAUDE.md hierarchy continues to work (likely different system block structure avoids triggering the validation)

Debug Log Analysis

The debug log shows the error originates from the API rejecting a scope field inside cache_control.ephemeral on the 3rd system message block (system.2). This appears to be Claude Code internally adding an unsupported field to the API request, not caused by user configuration.

Workaround

Downgrade to v2.1.87:

npm install -g @anthropic-ai/claude-code@2.1.87

View original on GitHub ↗

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