[BUG] Slash command list crashes when skill frontmatter `description` is a YAML array

Resolved 💬 4 comments Opened Jan 12, 2026 by echoVic Closed Jan 15, 2026

Preflight Checklist

  • [x] I have searched existing issues and this hasn't been reported yet
  • [x] This is a single bug report (please file separate reports for different bugs)
  • [x] I am using the latest version of Claude Code

What's Wrong?

Opening the / slash command picker crashes immediately when any installed skill has YAML frontmatter description defined as a
YAML array (e.g. description: [TODO: ...]). The picker/indexing logic appears to assume description is a string and calls .split("
"), which throws TypeError: description.split is not a function.

What Should Happen?

The slash command picker should render normally. Malformed/unsupported metadata types should be handled gracefully (e.g. coerce
to string, ignore with a warning), and should not crash the UI.

Error Messages/Logs

This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). The promise rejected with the reason:
TypeError: X.description.split is not a function
    at file:///Users/bytedance/.nvm/versions/node/v20.19.4/lib/node_modules/@anthropic-ai/claude-code/cli.js:2831:25881
   st  Array.map (<anonymous>)
    at NU0 (file:///Users/bytedance/.nvm/versions/node/v20.19.4/lib/node_modules/@anthropic-ai/claude-code/cli.js:2831:25769)
    at file:///Users/bytedance/.nvm/versions/node/v20.19.4/lib/node_modules/@anthropic-ai/claude-code/cli.js:2834:14947
    at file:///Users/bytedance/.nvm/versions/node/v20.19.4/lib/node_modules/@anthropic-ai/claude-code/cli.js:2834:15646
    at t0 (file:///Users/bytedance/.nvm/versions/node/v20.19.4/lib/node_modules/@anthropic-ai/claude-code/cli.js:733:62372)
    at Rj (file:///Users/bytedance/.nvm/versions/node/v20.19.4/lib/node_modules/@anthropic-ai/claude-code/cli.js:733:75281)
    at bX (file:///Users/bytedance/.nvm/versions/node/v20.19.4/lib/node_modules/@anthropic-ai/claude-code/cli.js:733:75165)
    at Rj (file:///Users/bytedance/.nvm/versions/node/v20.19.4/lib/node_modules/@anthropic-ai/claude-code/cli.js:733:76064)
    at bX (file:///Users/bytedance/.nvm/versions/node/v20.19.4/lib/node_modules/@anthropic-ai/claude-code/cli.js:733:75165)
This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). The promise rejected with the reason:
TypeError: X.description.split is not a function
    at file:///Users/bytedance/.nvm/versions/node/v20.19.4/lib/node_modules/@anthropic-ai/claude-code/cli.js:2831:25881
    aa Array.map (<anonymous>)
    at NU0 (file:///Users/bytedance/.nvm/versions/node/v20.19.4/lib/node_modules/@anthropic-ai/claude-code/cli.js:2831:25769)
    at file:///Users/bytedance/.nvm/versions/node/v20.19.4/lib/node_modules/@anthropic-ai/claude-code/cli.js:2834:14947
    at file:///Users/bytedance/.nvm/versions/node/v20.19.4/lib/node_modules/@anthropic-ai/claude-code/cli.js:2834:15646
    at t0 (file:///Users/bytedance/.nvm/versions/node/v20.19.4/lib/node_modules/@anthropic-ai/claude-code/cli.js:733:62372)
    at Rj (file:///Users/bytedance/.nvm/versions/node/v20.19.4/lib/node_modules/@anthropic-ai/claude-code/cli.js:733:75281)
    at bX (file:///Users/bytedance/.nvm/versions/node/v20.19.4/lib/node_modules/@anthropic-ai/claude-code/cli.js:733:75165)
    at Rj (file:///Users/bytedance/.nvm/versions/node/v20.19.4/lib/node_modules/@anthropic-ai/claude-code/cli.js:733:76064)
    at bX (file:///Users/bytedance/.nvm/versions/node/v20.19.4/lib/node_modules/@anthropic-ai/claude-code/cli.js:733:75165)
This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). The promise rejected with the reason:

Steps to Reproduce

  1. Create/install a skill with SKILL.md frontmatter like:

---
name: code-review
description: [TODO: some text]
---

  1. Start Claude Code normally.
  2. Type / to open the slash command list.

Claude Model

None

Is this a regression?

Yes, this worked in a previous version

Last Working Version

_No response_

Claude Code Version

2.1.3

Platform

Anthropic API

Operating System

macOS

Terminal/Shell

Terminal.app (macOS)

Additional Information

<img width="960" height="832" alt="Image" src="https://github.com/user-attachments/assets/52f9363a-3349-487d-ac07-93f863f9f66f" />

View original on GitHub ↗

This issue has 4 comments on GitHub. Read the full discussion on GitHub ↗