Skills with model frontmatter trigger rate limit errors when session runs on Opus
Bug description
When running a Claude Code session on Opus and invoking a skill that has a model field in its frontmatter (e.g., model: haiku or model: sonnet), the skill consistently fails with:
API Error: Rate limit reached
The rest of the session continues to work fine — only the skill invocation fails. This happens every time, not intermittently.
Steps to reproduce
- Start a Claude Code session on Opus (
claude-opus-4-6) - Create a skill with
model: haiku(ormodel: sonnet) andeffort: lowin the frontmatter - Invoke the skill via its slash command
Example SKILL.md:
---
description: Delete local branches already merged into development.
model: haiku
effort: low
---
Clean up local branches that have been merged into development.
## Steps
1. git checkout development && git pull
2. git branch --merged development | grep -vE 'development|main' | xargs git branch -d
3. Report which branches were deleted
Expected behavior
The skill should run using the specified model (Haiku/Sonnet) without errors, or gracefully fall back to the session model.
Actual behavior
The skill immediately fails with "API Error: Rate limit reached." The Opus session itself is not rate limited — all other interactions and skills without model frontmatter continue to work.
Workaround
Remove model and effort from the skill frontmatter. The skill then runs on the session's current model without issues.
Optionally add disable-model-invocation: true if the skill should only be invoked manually.
Additional context
- Plan: Max
- Session model: Opus 4.6
- Platform: macOS (Darwin 25.3.0)
- Tested skill model values:
haiku,sonnet— both trigger the issue - Skills without
modelfield: Work fine on Opus - Manually switching the session to Sonnet first and then invoking the same skill (with
model: sonnet) also works — suggests the issue is specifically with the model switch from Opus
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗