Follow Discord
Sweep 08 Oct 2026 · 18:53Z Build v2.1.295 516 read Stable v2.1.286 Latest v2.1.295 Next v2.1.295 Feeds RSS JSON llms.txt llms-full.txt Unofficial
One change · claude-code

Troubleshoot a mod changedplugins/mods/troubleshoot

Nearest release: v2.1.295, published an hour before upstream edited the page. Shown because the two are within 24 hours of each other. Nothing here says the release caused the edit.

Upstream edited this page at 8 Oct 2026 20:01 UTC, give or take a minute or two: the time comes from Anthropic’s own sitemap rather than from a commit. This site recorded the change at 8 Oct 2026 20:07 UTC.

Upstream edited
Recorded here
Lines+9added
Lines−1removed
From line 167 where the diff opens
First seen 1 Oct 2026 this site's first read of the page
Recorded edits10to this page, all time

### `the module failed without a message`

The whole hunk

from line 167, old and new numbered
/
lines
from line 167
167167 
168168Read the reason on that line. Common causes are a prop the element doesn't take and an element the app doesn't have.
169169 
170### `the module failed without a message`
171 
172A [`Client`](/docs/en/plugins/mods/interface#when-a-client-fails) failed with an error that has no message, such as `throw new Error()`. The line in its place reads like `my-mod: Client client/spinner.js: the module failed without a message`.
173 
174Find the throw in your `Client`'s code and give the error a message. The line then shows that message.
175 
176Before v2.1.289, the line showed `Error` as the reason instead.
177 
170178### `$.ui.open` runs and no pane appears
171179 
172180The call didn't come from something the user did, and the terminal is narrower than [the width that pane needs](/docs/en/plugins/mods/interface#when-a-pane-waits-for-a-wider-terminal).
from line 237
229237 
230238A drawing that didn't validate counts as a refused result and gets a line too. To write your own lines in the log, call [`$.ui.log`](/docs/en/plugins/mods/api#show-something-without-starting-a-turn) with a second argument, as in `$.ui.log('message', { to: 'debug' })`. Without the second argument, `$.ui.log` adds a dim line to the transcript.
231239 
232While you edit a mod loaded with `--plugin-dir`, the transcript shows a line for each reload that names the mod and lists its hooks. If a save breaks the module, the line says `reload failed, the previous version stays loaded:` with the reason, and the last working version keeps running.
240While you edit a mod loaded with `--plugin-dir`, the transcript shows a line for each reload that names the mod and lists its hooks. If a save breaks the module, the line says `reload failed, the previous version stays loaded:` with the reason, and the last working version keeps running until Claude Code next reloads plugins, such as when you run `/reload-plugins`.
233241 
234242## Next steps
235243 
Feedback