I Accidentally Made Claude Ask Itself the Same Question 1,966 Times

Published: (January 3, 2026 at 03:26 PM EST)
2 min read
Source: Dev.to

Source: Dev.to

Background

Last night I broke Claude Code in the most absurd way possible. I’ve been experimenting with Claude Code, Anthropic’s CLI tool for AI‑assisted development. One of its features is plugins, and I installed one called Ralph Wiggum – a loop mechanism that lets Claude iteratively work on tasks.

The idea is simple: give Claude a task, let it loop until it’s done. Great for complex, multi‑step work.

The Prompt

I wanted Claude to help me build out my personal brand, so I typed:

Create an amazing full stack of branding presence for me

and enabled the Ralph Wiggum loop.

The Loop Configuration

Here’s the loop configuration file that got created (.claude/ralph-loop.local.md):

---
active: true
iteration: 1966
max_iterations: 0
completion_promise: null
started_at: "2026-01-03T16:21:24Z"
---

max_iterations: 0 means unlimited iterations.

What Went Wrong

Every single message I sent was hijacked. Claude would respond, but then immediately get interrupted with:

Stop: Callback hook blocking error from command: "callback":
Create an amazing full stack of branding presence for me

The loop kept restarting, over and over—1,966 times—without producing any assets. Canceling the loop via the plugin command failed with a parse error, leaving me trapped in “branding purgatory.”

Debugging Steps

Claude eventually helped me debug. We:

  1. Searched for hook configurations.
  2. Found the .claude/ralph-loop.local.md file and saw it had been running for hours.
  3. Deleted the file:
rm .claude/ralph-loop.local.md

Instant relief.

Where to Look for Loop State

Claude Code stores loop state in the .claude/ directory. When things go wrong, check these locations first:

  • ~/.claude/settings.json – global settings
  • .claude/settings.local.json – project settings
  • .claude/ralph-loop.local.md – loop state (if using that plugin)

Lessons Learned

  • Always set a sensible limit. max_iterations: 0 sounds like “none” but actually means “infinite.”
  • Hooks are powerful; a misbehaving hook can make the entire tool unusable.
  • Vague prompts (e.g., “Create an amazing full stack of branding presence”) can cause Claude to repeatedly ask for clarification, which may trigger additional loop iterations.

Conclusion

I didn’t get any branding assets, but I gained a great story, a deeper understanding of Claude Code internals, and content for dev.to and Twitter. Sometimes the bug is the feature.

Have you broken an AI tool in a spectacular way? Drop your stories in the comments.

P.S. – I still need that branding presence. Maybe I’ll try again… with max_iterations: 5.

Back to Blog

Related posts

Read more »

The RGB LED Sidequest 💡

markdown !Jennifer Davishttps://media2.dev.to/dynamic/image/width=50,height=50,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%...

Mendex: Why I Build

Introduction Hello everyone. Today I want to share who I am, what I'm building, and why. Early Career and Burnout I started my career as a developer 17 years a...