[MODEL] Opus 4.6 continuously stuck in explore and thinking loops (Claude Code)

Status Open
Reported on v2.1.38
Maintainer reply None cached
Activity 10 comments · opened Feb 10, 2026

Preflight Checklist

  • [x] I have searched existing issues for similar behavior reports
  • [x] This report does NOT contain sensitive information (API keys, passwords, etc.)

Type of Behavior Issue

Other unexpected behavior

What You Asked Claude to Do

Ever since the release of Opus 4.6, I've had problems where Claude Code gets stuck in thinking loops or explore loops for minutes on end. This is actually happening for me every single session, and on most of my requests, it's not a rare occurrence. Ctrl+o reveals no visibility into what is actually happening behind the scenes, but Claude will sit there for 7 minutes, and I'll interrupt Claude and say "what happened? Why is it taking so long?" And Claude will tell me they were over-exploring, or stuck in thinking loops, arguing with itself.

Sometimes token and tool usage looks fairly static, and other times it'll be chewing through tokens like no tomorrow (hundreds of thousands of them, and >50 tool requests). I think it might be the difference between stuck in an argumentation loop with itself, versus stuck in an explore loop.

What Claude Actually Did

Just general usage. I nuked my entire Claude Code install thinking it was a problem on my end, but the behavior still persists. I've tried using the Windows version versus the WSL2 Ubuntu version (native binary on both), and it's the same deal. I'm confident this isn't a problem on my side, it's a problem that has only started as of the moment 4.6 released.

Expected Behavior

Some times its stuck in loops for 5 mins, sometimes 10 mins, I've even had it up to 22 mins.

The other issue is that theres zero visibility into what is actually happening behind the scenes, so it's impossible to tell when it's working as expected or stuck in a loop.

Files Affected

Permission Mode

Accept Edits was ON (auto-accepting changes)

Can You Reproduce This?

Sometimes (intermittent)

Steps to Reproduce

_No response_

Claude Model

Opus

Relevant Conversation

The other thing of note, is that when I do interrupt Claude, it generally agrees that the work it was doing was not helpful. It immediately will start doing the correct behavior, and say things like: "I already have enough context, let me complete the task." - so whatever it's doing in the background is not actually contributing to the goal and is just wasted effort.

Impact

Critical - Data loss or corrupted project

Claude Code Version

2.1.38

Platform

Anthropic API

Additional Context

_No response_

View original on GitHub ↗

10 Comments

github-actions[bot] · 6 months ago

Found 3 possible duplicate issues:

  1. https://github.com/anthropics/claude-code/issues/23688
  2. https://github.com/anthropics/claude-code/issues/24104
  3. https://github.com/anthropics/claude-code/issues/24215

This issue will be automatically closed as a duplicate in 3 days.

  • If your issue is a duplicate, please close it and 👍 the existing issue instead
  • To prevent auto-closure, add a comment or 👎 this comment

🤖 Generated with Claude Code

teo-lapa · 6 months ago

Confirming - Opus 4.6 loops are a serious production issue

I'm experiencing the exact same problem daily. I run Claude Code with Opus 4.6 on a Max subscription ($200/mo) for managing a small company's IT infrastructure (Odoo ERP, AI agents, network devices, NAS).

What I see consistently:

  • Claude gets stuck in explore/thinking loops for 5-15 minutes, reading files it already read, searching for things it already found
  • When I interrupt, it acknowledges the work was useless
  • On tasks that Opus 4.5 would handle in 2-3 turns, Opus 4.6 takes 8-10+ turns going in circles
  • The model repeatedly "re-discovers" information it had 3 turns ago

My environment: Windows 11, VSCode extension + CLI, MCP servers (Odoo, Playwright), heavy use of CLAUDE.md project files and memory system.

Impact: I depend on Claude Code for real business operations - deploying code, managing servers, processing orders. These loops waste significant time and burn through the usage limits much faster. What used to be a 5-minute task now takes 20+ minutes of babysitting.

This is not a subjective "feels dumber" complaint - the behavioral change from Opus 4.5 to 4.6 is stark and measurable in my daily workflow.

drk-mtr · 5 months ago

I'm finding the same with Sonnet 4.6 compared to Sonnet 4.5. Gets stuck in speculative loops and then doesn't actually take any action or reach conclusion, just goes back around the same loop as before. Requests to ask it to change approach often fall on deaf ears - it'll simply acknowledge the user is frustrated then dive back into the loop.

It's as if its been given imposter syndrome - it's often reaching reasonable conclusions and then self-doubting and looping, instead of giving them a go or prompting the user for input.

KSirys · 5 months ago

I'm no way near the usage some of you have but I'm having the same issue, where it just keeps going in circles and doesn't find the answer. I just spent 50% of my session trying to add an "auto IP finder" for a file he created, which was working before mind you, and now it can't figure out how to get it working as it was before.

I'm running Opus 4.6 and does anyone have any good suggestions on how to get it to stop? Should I use another LLM to find the answer?

Edit, I just had Chatgpt pro go over everything that Opus did and it found the problem, in less than 15 minutes. I'm a big fan of Claude, but chatgpt saved the day today.

yurukusa · 5 months ago

A circuit-breaker hook can stop infinite exploration loops:

INPUT=$(cat)
TOOL=$(echo "$INPUT" | jq -r '.tool_name // empty')
STATE="/tmp/cc-explore-loop"
READONLY_TOOLS='Read|Grep|Glob|Agent'
if echo "$TOOL" | grep -qE "$READONLY_TOOLS"; then
    COUNT=$(cat "$STATE" 2>/dev/null || echo 0)
    COUNT=$((COUNT + 1))
    echo "$COUNT" > "$STATE"
    if [ $COUNT -ge 15 ]; then
        echo "⚠️ LOOP DETECTED: $COUNT consecutive read/explore calls without action." >&2
        echo "Stop exploring and start implementing." >&2
        rm -f "$STATE"
        exit 2  # Block to force a different action
    elif [ $COUNT -ge 10 ]; then
        echo "⚠️ $COUNT consecutive reads — consider taking action instead of exploring further." >&2
    fi
else
    rm -f "$STATE"
fi
exit 0

For a softer approach that nudges rather than blocks:

STATE="/tmp/cc-explore-count"
COUNT=$(cat "$STATE" 2>/dev/null || echo 0)
if [ $COUNT -ge 8 ]; then
    jq -n '{"hookSpecificOutput":{"hookEventName":"UserPromptSubmit","additionalContext":"IMPORTANT: You have been reading/exploring for many turns without making changes. Stop exploring and start implementing. If you are stuck, state what you are stuck on rather than reading more files."}}'
    echo 0 > "$STATE"
fi
exit 0

These hooks detect the "explore loop" pattern (read → read → read → ...) and either block after N iterations or inject a nudge to break the cycle.

Lyzrinn · 4 months ago

Can confirm I am encountering that issue as well, very annoying to burn through your entire plan usage for nothing of value to be done.

merlinz01 · 4 months ago
● Searched for 1 pattern, read 2 files (ctrl+o to expand)
  ⎿  Interrupted · What should Claude do instead?

❯ are you stuck or why is it taking so long

● Sorry, was over-planning. Let me just do it.
EOSTech-dev · 4 months ago

Still happening in April 2026. Not fixed. Financial impact confirmed. Issue #52362 is mine — same behavior, different task type (web search + structured response, not code editing). This is not a niche edge case.

merlinz01 · 4 months ago

Try adjusting the thinking effort in the /model configuration.

veloryn-intel · 3 months ago

This failure mode appears across many long-running multi-agent traces.

The visible symptoms are usually:

  • retries continue
  • tool intent is restated
  • execution still appears active
  • token usage keeps growing
  • no material state transition occurs

The difficult part is that workflows can remain locally coherent long after execution has effectively stopped progressing.

In replayed traces, this often appears as:

  • repeated intent reformulation
  • coordination continuity without execution advancement
  • expanding context consumption after structural contribution has already peaked

Traditional controls like recursion ceilings eventually terminate execution, but they do not explain where execution stopped materially evolving.

We’ve been analyzing this class of behavior through deterministic replay and execution-trajectory analysis in X-Ray:

https://github.com/veloryn-intel/veloryn-xray

Replay analysis helps make these transition boundaries visible after execution completes.

The operational distinction becomes:

  • execution that is still active

vs

  • execution that is still progressing