[BUG] Invalid URI scheme `_claude_vscode_fs_right` breaks Java Language Server in VSCode

Resolved 💬 3 comments Opened May 11, 2026 by walles Closed May 11, 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?

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

  1. Install the VSCode Claude Code extension and the Red Hat "Language Support for Java" extension.
  2. Open a Java project in VSCode. <https://github.com/jenkins-docs/simple-java-maven-app> for example.
  3. Ask Claude to edit a .java file so that the proposed-edit / diff view opens.
  4. Open the "Language Support for Java" output channel.
  5. 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

View original on GitHub ↗

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