[Bug] ripgrep binary loses execute permission after upgrade, breaking /agents command

Resolved 💬 2 comments Opened Apr 1, 2026 by xavieryin-cyber Closed Apr 18, 2026

Bug Description
Title: After upgrading to 2.1.89, /agents shows "No agents found" due to missing ripgrep execute permission

Description:
After upgrading Claude Code to 2.1.89 via nvm on macOS (arm64), the /agents command shows "No agents found" even though agent files exist in both .claude/agents/ and
~/.claude/agents/.

Root cause: the ripgrep binary at vendor/ripgrep/arm64-darwin/rg loses its execute permission after the upgrade, breaking agent file indexing.

Fix:
chmod +x ~/.nvm/versions/node/v22.20.0/lib/node_modules/@anthropic-ai/claude-code/vendor/ripgrep/arm64-darwin/rg

Environment:

  • Claude Code 2.1.89
  • macOS arm64
  • Node via nvm v22.20.0

Environment Info

  • Platform: darwin
  • Terminal: androidstudio
  • Version: 2.1.89
  • Feedback ID: 6017e760-d6b3-4489-b50b-be3e2494a03c

Errors

[{"error":"Error: unable to verify the first certificate\n    at ev.from (file:///Users/xavier.yin/.nvm/versions/node/v22.20.0/lib/node_modules/@anthropic-ai/claude-code/cli.js:108:7836)\n    at ClientRequest.<anonymous> (file:///Users/xavier.yin/.nvm/versions/node/v22.20.0/lib/node_modules/@anthropic-ai/claude-code/cli.js:116:12658)\n    at ClientRequest.emit (node:events:519:28)\n    at emitErrorEvent (node:_http_client:105:11)\n    at TLSSocket.socketErrorListener (node:_http_client:518:5)\n    at TLSSocket.emit (node:events:519:28)\n    at emitErrorNT (node:internal/streams/destroy:170:8)\n    at emitErrorCloseNT (node:internal/streams/destroy:129:3)\n    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n    at rm6.request (file:///Users/xavier.yin/.nvm/versions/node/v22.20.0/lib/node_modules/@anthropic-ai/claude-code/cli.js:118:2450)\n    at process.processTicksAndRejections (node:internal/process/task_queues:105:5)\n    at async Qe1 (file:///Users/xavier.yin/.nvm/versions/node/v22.20.0/lib/node_modules/@anthropic-ai/claude-code/cli.js:3135:1614)\n    at async de1 (file:///Users/xavier.yin/.nvm/versions/node/v22.20.0/lib/node_modules/@anthropic-ai/claude-code/cli.js:3135:2889)\n    at async Object.call (file:///Users/xavier.yin/.nvm/versions/node/v22.20.0/lib/node_modules/@anthropic-ai/claude-code/cli.js:3138:409)\n    at async _9Y (file:///Users/xavier.yin/.nvm/versions/node/v22.20.0/lib/node_modules/@anthropic-ai/claude-code/cli.js:4119:7268)","timestamp":"2026-04-01T09:27:53.800Z"},{"error":"Error: unable to verify the first certificate\n    at ev.from (file:///Users/xavier.yin/.nvm/versions/node/v22.20.0/lib/node_modules/@anthropic-ai/claude-code/cli.js:108:7836)\n    at ClientRequest.<anonymous> (file:///Users/xavier.yin/.nvm/versions/node/v22.20.0/lib/node_modules/@anthropic-ai/claude-code/cli.js:116:12658)\n    at ClientRequest.emit (node:events:519:28)\n    at emitErrorEvent (node:_http_client:105:11)\n    at TLSSocket.socketErrorListener (node:_http_client:518:5)\n    at TLSSocket.emit (node:events:519:28)\n    at emitErrorNT (node:internal/streams/destroy:170:8)\n    at emitErrorCloseNT (node:internal/streams/destroy:129:3)\n    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n    at rm6.request (file:///Users/xavier.yin/.nvm/versions/node/v22.20.0/lib/node_modules/@anthropic-ai/claude-code/cli.js:118:2450)\n    at process.processTicksAndRejections (node:internal/process/task_queues:105:5)\n    at async Qe1 (file:///Users/xavier.yin/.nvm/versions/node/v22.20.0/lib/node_modules/@anthropic-ai/claude-code/cli.js:3135:1614)\n    at async de1 (file:///Users/xavier.yin/.nvm/versions/node/v22.20.0/lib/node_modules/@anthropic-ai/claude-code/cli.js:3135:2889)\n    at async Object.call (file:///Users/xavier.yin/.nvm/versions/node/v22.20.0/lib/node_modules/@anthropic-ai/claude-code/cli.js:3138:409)\n    at async _9Y (file:///Users/xavier.yin/.nvm/versions/node/v22.20.0/lib/node_modules/@anthropic-ai/claude-code/cli.js:4119:7268)","timestamp":"2026-04-01T09:27:54.306Z"},{"error":"Error: unable to verify the first certificate\n    at ev.from (file:///Users/xavier.yin/.nvm/versions/node/v22.20.0/lib/node_modules/@anthropic-ai/claude-code/cli.js:108:7836)\n    at ClientRequest.<anonymous> (file:///Users/xavier.yin/.nvm/versions/node/v22.20.0/lib/node_modules/@anthropic-ai/claude-code/cli.js:116:12658)\n    at ClientRequest.emit (node:events:519:28)\n    at emitErrorEvent (node:_http_client:105:11)\n    at TLSSocket.socketErrorListener (node:_http_client:518:5)\n    at TLSSocket.emit (node:events:519:28)\n    at emitErrorNT (node:internal/streams/destroy:170:8)\n    at emitErrorCloseNT (node:internal/streams/destroy:129:3)\n    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n    at rm6.request (file:///Users/xavier.yin/.nvm/versions/node/v22.20.0/lib/node_modules/@anthropic-ai/claude-code/cli.js:118:2450)\n    at process.processTicksAndRejections (node:internal/process/task_queues:105:5)\n    at async Qe1 (file:///Users/xavier.yin/.nvm/versions/node/v22.20.0/lib/node_modules/@anthropic-ai/claude-code/cli.js:3135:1614)\n    at async…

Note: Content was truncated.

View original on GitHub ↗

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