[BUG] Invalid URI scheme `_claude_vscode_fs_right` breaks Java Language Server in VSCode
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?
The Claude Code VSCode extension 2.1.138 opens virtual documents (diff / proposed-edit views) under a URI scheme named _claude_vscode_fs_right.
That scheme name is not a legal URI scheme per RFC 3986 §3.1 (must start with ALPHA, no underscores).
When the Eclipse JDT Language Server (Red Hat Java extension) receives a textDocument/documentSymbol request for one of those URIs, java.net.URI throws URISyntaxException: Illegal character in scheme name at index 0, and the document outline / symbol features fail for that view.
The corresponding _left scheme presumably has the same issue.
What Should Happen?
The extension should use a URI scheme that conforms to RFC 3986.
For example claude-vscode-fs-right (leading letter, hyphens instead of underscores). jdt.ls would then parse the URI without error and populate document symbols normally.
Error Messages/Logs
java.net.URISyntaxException: Illegal character in scheme name at index 0: _claude_vscode_fs_right:/Users/xxx/yyy/zzz/AaaService.java
at java.base/java.net.URI$Parser.fail(Unknown Source)
at java.base/java.net.URI$Parser.checkChars(Unknown Source)
at java.base/java.net.URI$Parser.checkChar(Unknown Source)
at java.base/java.net.URI$Parser.parse(Unknown Source)
at java.base/java.net.URI.<init>(Unknown Source)
at org.eclipse.jdt.ls.core.internal.JDTUtils.toURI(JDTUtils.java:1221)
at org.eclipse.jdt.ls.core.internal.JDTUtils.resolveTypeRoot(JDTUtils.java:469)
at org.eclipse.jdt.ls.core.internal.JDTUtils.resolveTypeRoot(JDTUtils.java:456)
at org.eclipse.jdt.ls.core.internal.handlers.DocumentSymbolHandler.documentSymbol(DocumentSymbolHandler.java:120)
at org.eclipse.jdt.ls.core.internal.handlers.JDTLanguageServer.lambda$13(JDTLanguageServer.java:772)
at org.eclipse.jdt.ls.core.internal.BaseJDTLanguageServer.lambda$0(BaseJDTLanguageServer.java:87)
at java.base/java.util.concurrent.CompletableFuture$UniApply.tryFire(Unknown Source)
at java.base/java.util.concurrent.CompletableFuture$Completion.exec(Unknown Source)
at java.base/java.util.concurrent.ForkJoinTask.doExec(Unknown Source)
at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(Unknown Source)
at java.base/java.util.concurrent.ForkJoinPool.scan(Unknown Source)
at java.base/java.util.concurrent.ForkJoinPool.runWorker(Unknown Source)
at java.base/java.util.concurrent.ForkJoinWorkerThread.run(Unknown Source)
Steps to Reproduce
- Install the VSCode Claude Code extension and the Red Hat "Language Support for Java" extension.
- Open a Java project in VSCode. <https://github.com/jenkins-docs/simple-java-maven-app> for example.
- Ask Claude to edit a
.javafile so that the proposed-edit / diff view opens. - Open the "Language Support for Java" output channel.
- Observe a
java.net.URISyntaxException: Illegal character in scheme name at index 0: _claude_vscode_fs_right:...(full stack trace pasted in the Error Messages section); the document symbol outline for the diff view is empty.
Claude Model
Opus 4.7
Is this a regression?
I don't know
Last Working Version
_No response_
Claude Code Version
2.1.126
Platform
Anthropic API
Operating System
macOS
Terminal/Shell
iTerm2
Additional Information
- VSCode plugin:
anthropic.claude-code - VSCode plugin version:
2.1.138
- Java VSCode plugin:
redhat.java - Java VSCode plugin version:
1.54.0
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗