Skip to content

Regression: v1.3.14+ breaks Claude OAuth Opus requests with opencode-claude-auth (v1.3.13 works) #21922

@tad-hq

Description

@tad-hq

Description

Using opencode-claude-auth with Claude OAuth, anthropic/claude-opus-4-6 works on OpenCode v1.3.13 but fails on v1.3.14+ (including v1.3.17 and v1.4.x) with:

400: You're out of extra usage. Add more at claude.ai/settings/usage and keep going.

This appears to be an OpenCode regression rather than a general account/billing issue, because the exact same Claude OAuth account works on v1.3.13 and starts failing on v1.3.14+.

I narrowed the version boundary down to:

  • last known good: v1.3.13
  • first known bad: v1.3.14

The strongest suspect in that range is the provider/auth/plugin integration work in:

  • 2f405daa983c950794aa3982584f59411f89bc50refactor: use Effect services instead of async facades in provider, auth, and file (#20480)

That change makes provider/auth.ts and provider/provider.ts depend on Plugin.Service directly. My current hypothesis is that this made opencode-claude-auth intercept the Anthropic Opus path reliably, which then triggers the Claude OAuth extra-usage rejection.

Additional evidence from CLAUDE_AUTH_DEBUG=1 on a failing version shows the Opus request is built with:

  • modelId: claude-opus-4-6
  • anthropic-beta includes effort-2025-11-24
  • response is the 400 extra-usage error above

Plugins

  • oh-my-openagent@latest
  • opencode-claude-auth@latest (observed with 1.4.9)

OpenCode version

  • current pinned workaround: 1.3.13
  • regression reproduced on: 1.3.14+, 1.3.17, 1.4.0, 1.4.1

Steps to reproduce

  1. Install OpenCode v1.3.14 or newer.
  2. Install and authenticate opencode-claude-auth with a Claude OAuth account.
  3. Run a minimal Opus request, for example:
    CLAUDE_AUTH_DEBUG=1 opencode run "Reply with exactly the single word OK." --model anthropic/claude-opus-4-6 --variant medium
  4. Observe the request fails with:
    You're out of extra usage. Add more at claude.ai/settings/usage and keep going.
    
  5. Downgrade to v1.3.13 and run the same request again.
  6. Observe that the request succeeds on v1.3.13.

Screenshot and/or share link

No share link. I can provide the relevant claude-auth-debug.log lines if needed, but the important ones are:

  • successful Haiku request on same account
  • failing Opus request on same account
  • failing Opus request includes effort-2025-11-24

Operating System

Linux-5.15.0-171-generic-x86_64-with-glibc2.35

Terminal

xterm-ghostty

Metadata

Metadata

Assignees

Labels

coreAnything pertaining to core functionality of the application (opencode server stuff)

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions