Skill tool fails with EEXIST on Windows when username contains non-ASCII characters

Resolved 💬 4 comments Opened Mar 5, 2026 by tokiyama-corp Closed Apr 3, 2026

Bug Description

The Skill tool fails with EEXIST: file already exists, mkdir 'C:\Users\<username>' when the Windows username contains non-ASCII (e.g., Japanese) characters.

The skill definitions exist and are correctly discovered (they appear in the system reminder), but invoking any skill via the Skill tool always fails with this error.

Steps to Reproduce

  1. Use Windows with a non-ASCII username (e.g., C:\Users\沖山智彦)
  2. Place skill definitions in ~/.claude/commands/*.md (or project-level .claude/commands/*.md)
  3. Invoke any skill via the Skill tool

Expected Behavior

The skill should load and execute normally.

Actual Behavior

EEXIST: file already exists, mkdir 'C:\Users\沖山智彦'

The error occurs regardless of whether skills are in the global (~/.claude/commands/) or project-level (.claude/commands/) directory.

Environment

  • OS: Windows 11 Pro 10.0.26200
  • Claude Code version: 2.1.69 (also reproduced on 2.1.63)
  • Shell: Git Bash
  • Node.js: v22.22.0
  • Context: VSCode extension

Root Cause (Suspected)

An internal mkdir call (likely without { recursive: true }) is attempting to create the home directory path, which already exists. This causes EEXIST to be thrown instead of being silently handled.

Workaround

Read the skill definition file directly with the Read tool and follow the instructions manually, bypassing the Skill tool entirely.

View original on GitHub ↗

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