Skip to content

[BUG] "Could not find ripgrep binary" on VS Code ≥1.122.0 due to @vscode/ripgrep → @vscode/ripgrep-universal rename #382

@abcxlab

Description

@abcxlab

VS Code 1.122.0 renamed the built-in ripgrep package from @vscode/ripgrep to @vscode/ripgrep-universal and moved the binary into a platform-specific subdirectory (e.g. bin/darwin-arm64/rg). The getBinPath() function only checks the old paths, so it fails to locate the ripgrep binary on the new VS Code version. This causes two cascading failures:

Codebase indexing breaks — throws "Could not find ripgrep binary"
Chat stops working entirely — messages are sent but receive no response, stuck in an API-requesting state (the ripgrep lookup failure blocks downstream processing)
To Reproduce

Prerequisite: VS Code ≥ 1.122.0

Install Roo Code in VS Code 1.122.0
Open any project and trigger codebase indexing
Observe the "Could not find ripgrep binary" error
Send a message in the chat panel — the message is sent but no response ever comes back, stuck in an API-requesting loop
Expected behavior

The ripgrep binary should be located successfully. Codebase indexing and chat should work normally.

Root Cause

getBinPath() in src/services/ripgrep/index.ts only checks these legacy paths:

node_modules/@vscode/ripgrep/bin/
node_modules/vscode-ripgrep/bin
node_modules.asar.unpacked/vscode-ripgrep/bin/
node_modules.asar.unpacked/@vscode/ripgrep/bin/
In VS Code 1.122.0, the actual ripgrep location is:

node_modules/@vscode/ripgrep-universal/bin/{platform}-{arch}/rg
For example, on macOS ARM64: node_modules/@vscode/ripgrep-universal/bin/darwin-arm64/rg

Fix

Add the new package path check before the existing legacy paths:

(await checkPath(node_modules/@vscode/ripgrep-universal/bin/${process.platform}-${process.arch}/)) ||
The new path is checked first. If not found, it falls back to the legacy paths, maintaining full backward compatibility with older VS Code versions and VS Code-based editors (Cursor, Qoder, Kiro, etc., which still use the old package structure).

What version of Roo Code are you running

develop branch, commit 51ff82fca

Additional context

VS Code 1.122.0 was released on 2026-05-27 and is the version that introduced this change
Confirmed that Cursor, Qoder, and Kiro still use the old @vscode/ripgrep package structure and are unaffected
The fix has been verified on the Rock-Code fork — both codebase indexing and chat functionality are restored

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No fields configured for Bug.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions