[BUG] Extension icons not rendering (blank squares) after update, in Remote-SSH session

Status Open
Reported on v2.1.259
Maintainer reply None cached
Activity 3 comments · opened Sep 3, 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?

After the extension auto-updated to version 2.1.259, several UI icons belonging to Claude Code stopped rendering their graphics, showing as blank/grey squares instead:

  1. The icon in the Activity Bar / Secondary Side Bar
  2. The "Claude Code: Open" button in the editor toolbar (top right, next to Run controls)

The extension itself is fully functional — hovering over the icons shows the correct tooltip ("Claude Code" / "Claude Code: Open"), clicking them opens the panel normally, and the Claude Code session manager, chat, and status bar text indicator ("Claude Code" text at the bottom status bar) all work and display correctly. Only the icon graphics themselves fail to render.

This is happening in a VS Code Remote-SSH session (client: Fedora Linux, remote host: Ubuntu).

<img width="1920" height="1080" alt="Image" src="https://github.com/user-attachments/assets/f9fe9375-e923-46c2-97fb-66cebb5d881b" />

<img width="1920" height="1080" alt="Image" src="https://github.com/user-attachments/assets/d51d9ce5-b663-471f-a8de-21e2380e259a" />

What Should Happen?

Icons should render normally (the orange Claude Code spiral logo) in both the sidebar and the editor toolbar, as they did before the update.

Error Messages/Logs

Steps to Reproduce

  1. Use Claude Code for VS Code connected via Remote-SSH (client: Fedora, remote: Ubuntu)
  2. Let the extension auto-update to v2.1.259
  3. Observe the Activity Bar / Secondary Side Bar — the Claude Code icon is a blank/grey square
  4. Observe the editor toolbar (top right, near Run controls) — the "Claude Code: Open" button icon is also blank
  5. Note that tooltips, click actions, and the status bar text indicator all work correctly — only the icon graphics fail

Claude Model

_No response_

Is this a regression?

Yes, this worked in a previous version

Last Working Version

_No response_

Claude Code Version

N/A - using VS Code extension only (v2.1.259)

Platform

Other

Operating System

Other Linux

Terminal/Shell

VS Code integrated terminal

Additional Information

  • Developer: Reload Window — no effect
  • Confirmed extension is enabled (not disabled) on the SSH remote
  • Confirmed extension shows "Extension is enabled on 'SSH: ...'"

View original on GitHub ↗

3 Comments

jp127266 · 5 days ago

Confirming this on a macOS (iMac M1) client with extension v2.1.265 — so the regression is still present six versions after 2.1.259, and this makes three different client OSes (Fedora here, Windows in #92450, now macOS/arm64), which rules out the client side.

Environment

| | |
|---|---|
| Extension | anthropic.claude-code 2.1.265 (linux-x64), installed on the remote |
| VS Code | 1.136.2, commit 88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f (2026-09-04) |
| Client | macOS, iMac M1 (Apple Silicon) |
| Remote | Ubuntu 26.04.1 LTS, kernel 7.0.0-31-generic, x86_64, via Remote-SSH |
| Remote server Node | v24.18.1 (same as #92450) |

Symptom matches this issue exactly: the Activity Bar slot is present and the tooltip reads "Claude Code", clicking it opens the panel and the session manager works normally — only the glyph is blank. Opening a local folder on the iMac (no SSH) renders the icon correctly; it is blank only in the Remote-SSH window.

The icon asset is not the problem

I checked this on the remote rather than assuming, because it seemed the obvious first suspect:

  • resources/claude-logo.svg is present in the installed remote extension — 1696 bytes, sha256:a3101f3047a119aa11825ad9369510f0c472428c8c52d420e31bc62db44a8364.
  • It renders correctly. I loaded it in Chromium as a CSS mask the way VS Code paints activity-bar icons (-webkit-mask-image + mask-size: 24px) and the spark drew fine. I also tested a variant with width/height set to 24 instead of the shipped 1em, and one with fill="currentColor" instead of the hardcoded fill="#D97757" — all three masked identically, so neither the 1em intrinsic sizing nor the hardcoded fill is responsible.
  • Nothing in the remote extension-host log points at it. Anthropic.claude-code activates cleanly; there are no icon, resource-fetch, or ENOENT errors against the extension's resources/ directory.

So the file is intact and valid — which suggests the failure is in how the icon is fetched or served over the remote resource channel, not in the asset.

Possibly useful for narrowing which container is blank

The extension declares two activity-bar view containers, both titled "Claude Code" and both using resources/claude-logo.svg:

  • claude-sidebar, gated on claude-code:doesNotSupportSecondarySidebar
  • claude-sessions-sidebar, gated on claude-vscode.sessionsListEnabled

In extension.js, claude-code:doesNotSupportSecondarySidebar is only set when the VS Code version is below 1.106:

let V = vscode.version.split(".").map(Number), H = V[0] ?? 0, B = V[1] ?? 0,
    q = H > 1 || (H === 1 && B >= 106);
if (!q) vscode.commands.executeCommand("setContext", "claude-code:doesNotSupportSecondarySidebar", !0);
vscode.commands.executeCommand("setContext", "claude-vscode.sessionsListEnabled", !0);

On 1.136.2 that key stays unset, so claude-sidebar is not contributed and the primary sidebar entry goes to the secondary sidebar instead. The container actually occupying the blank Activity Bar slot here is therefore claude-sessions-sidebar — whose sole view claudeVSCodeSessionsList is declared with an empty "name": "". Flagging in case it helps identify which of the two code paths is the one failing to resolve its icon; I have not verified that this is causally related.

Happy to run any further diagnostics on this remote if it would help.

mysteriousHerb · 1 day ago

this has been a while :D only on remote ssh machine actually

jeremy-wendelken · 9 hours ago

I am experiencing this issue too. Is there any known workaround?