[BUG] Cowork on Linux reports "not supported on this device" when the user lacks access to /dev/vhost-vsock — no reason surfaced in UI or logs

Status Open
Maintainer reply None cached
Activity 3 comments · opened Jul 24, 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?

On Linux Mint 22.3 (Ubuntu 24.04 base) with a complete, working KVM stack, Cowork evaluated the device as unsupported and the shell tool returned "Workspace unavailable. The isolated Linux environment failed to start (not supported on this device)".

Every tool the support evaluator probes for was present and readable:

  • virtiofsd at /usr/libexec/virtiofsd (first probed path per #74605)
  • qemu-system-x86_64 at /usr/bin/qemu-system-x86_64
  • OVMF at /usr/share/OVMF/OVMF_CODE_4M.fd (confirmed probed: grepping app.asar shows both /usr/share/OVMF/OVMF_CODE.fd and /usr/share/OVMF/OVMF_CODE_4M.fd)
  • /dev/kvm present, accessible via the logind uaccess ACL (crw-rw----+)

The actual gate was device permissions: the user account was not in the kvm group, and /dev/vhost-vsock — unlike /dev/kvm — gets no uaccess ACL on Ubuntu-based systems:

crw-rw----+ 1 root kvm 10, 232 jul 24 10:38 /dev/kvm
crw-rw----  1 root kvm 10, 241 jul 24 10:38 /dev/vhost-vsock

This is inferred differentially rather than read from a log line (see next point): it was the only unsatisfied requirement we could find, and fixing it alone flipped the evaluation to supported.

Compounding issues, both echoing #74605:

  1. The failure reason is never surfaced. ~/.config/Claude/logs/cowork_vm_node.log only records the consequence, never the cause. No virtualization_tools_missing / virtualization_not_available / virtualization_entitlement_missing string (all present in the bundle) was ever logged:

``
[cleanupVMBundleIfUnsupported] yukonSilver not supported (status=unsupported), checking for stale bundle...
[startVM] VM not supported (linux/x64), skipping
``

The (linux/x64) interpolation again reads like an architecture gate when it is a permissions gate.

  1. cleanupVMBundleIfUnsupported deletes the VM bundle on every launch while status ≠ supported, so once fixed, the user re-downloads the full rootfs bundle.

This likely affects many default desktop installs: on Ubuntu/Mint, a user can have libvirt/QEMU fully working (via the libvirt group or ACLs) without ever being in kvm, and nothing on a stock desktop install grants vsock access.

What Should Happen?

What Should Happen?

  1. When the gate is device access, say so: the UI should distinguish "QEMU/OVMF/virtiofsd not found" from "no access to /dev/kvm or /dev/vhost-vsock", and in the latter case suggest the actual fix: sudo usermod -aG kvm $USER + re-login.
  2. Log the concrete failure reason (which probe failed, on which path/device) in cowork_vm_node.log.
  3. Ideally, don't delete the downloaded bundle on unsupported status, or at least not repeatedly.

Error Messages/Logs

Steps to Reproduce

  1. Linux Mint 22.x / Ubuntu 24.04, official Claude Desktop .deb, full KVM stack installed (qemu-system-x86, ovmf, virtiofsd).
  2. User account not in the kvm group (the default for accounts that never explicitly added it).
  3. Launch Claude Desktop, start a Cowork session, trigger any shell command.
  4. Observe "not supported on this device", with all probed tool paths satisfied.

Fix that resolved it: sudo usermod -aG kvm $USER, reboot (or re-login). Next launch evaluated as supported, re-downloaded the bundle and the VM booted normally. An OVMF symlink (OVMF_CODE.fdOVMF_CODE_4M.fd) created during triage was not the fix — the app already probes the _4M name.

Claude Model

Other

Is this a regression?

I don't know

Last Working Version

_No response_

Claude Code Version

This is a Claude Desktop (Cowork) issue. Claude Desktop for Linux 1.24012.0

Platform

Other

Operating System

Ubuntu/Debian Linux

Terminal/Shell

Other

Additional Information

Environment

  • Claude Desktop for Linux 1.24012.0, official .deb from Anthropic's apt repository (https://downloads.claude.ai/claude-desktop/apt/stable)
  • Linux Mint 22.3 (ID=linuxmint, VERSION_ID="22.3"), kernel 6.17.0-35-generic, x86_64
  • qemu-system-x86_64, OVMF (ovmf package, _4M variants only, as shipped on noble), virtiofsd 2024-01-22 build at /usr/libexec/virtiofsd

Related

  • #74605 — same opaque [startVM] VM not supported (linux/x64) logging and bundle-cleanup behaviour; different root cause (there: virtiofsd path probe; here: vsock device permissions).

---

Written by Claude (Fable 5) running in Cowork, during the live debugging session with the affected user, who reviewed and submitted this report.

View original on GitHub ↗

3 Comments

rafaelrsantosti · 27 days ago

Confirmed on Ubuntu 24.04.4 LTS + Claude Desktop 1.24012.9 (official .deb). Same root cause as described here.

What matched

  • Full KVM stack already present (qemu-system-x86_64, OVMF OVMF_CODE_4M.fd, virtiofsd at /usr/libexec/virtiofsd)
  • /dev/kvm already had the logind uaccess ACL (crw-rw----+) → accessible without kvm group membership
  • /dev/vhost-vsock was root:kvm 0660 with no uaccessEACCES on the app's R_OK|W_OK probe
  • cowork_vm_node.log only showed the consequence (yukonSilver not supported), never which device failed

Grepping app.asar confirms the evaluator treats either device failing as no_permission / kvm_permission_denied, so the UI's "add yourself to the kvm group" hint is directionally right but incomplete: on Ubuntu/Mint the real gate is almost always vsock, because kvm already gets TAG+="uaccess" in 70-uaccess.rules and vsock does not.

Extra nuance: usermod fails for authd / Entra ID users

On hosts using Ubuntu authd with Microsoft Entra ID, the account is not in /etc/passwd, so:

sudo usermod -aG kvm $USER
# usermod: user 'user@company.com' does not exist

does nothing. gpasswd -a "$USER" kvm works because it resolves the user via NSS.

Workaround that fixed it immediately (no re-login required)

# 1. Ensure the module is loaded (persist across reboots)
sudo modprobe vhost_vsock
echo vhost_vsock | sudo tee /etc/modules-load.d/claude-cowork.conf

# 2. Give /dev/vhost-vsock the same uaccess treatment as /dev/kvm
echo 'SUBSYSTEM=="misc", KERNEL=="vhost-vsock", TAG+="uaccess"' | \
  sudo tee /etc/udev/rules.d/70-claude-cowork-vsock.rules
sudo udevadm control --reload-rules
sudo udevadm trigger --subsystem-match=misc --sysname-match=vhost-vsock

# 3. Optional belt-and-suspenders (works for authd users; usermod may not)
sudo gpasswd -a "$USER" kvm

After a full quit/relaunch of Claude Desktop, the log flipped from yukonSilver not supported to [Bundle:status] rootfs.img missing (i.e. supported, proceeding to download the VM bundle).

Suggestions for Anthropic / distro

  1. Surface kvm_permission_denied (and which device failed: kvm vs vsock) in the UI and in cowork_vm_node.log.
  2. Document the uaccess udev rule above, or ship it with the .deb.
  3. Ideally push upstream so /dev/vhost-vsock gets TAG+="uaccess" in 70-uaccess.rules the same way /dev/kvm already does — that would fix stock Ubuntu/Mint installs without any user action.
lisaprez · 14 days ago

Signalement en complément : sur ma machine (Linux), Cowork a cessé de pouvoir se connecter à ses dossiers locaux après le 11 août 2026. Je ne peux pas affirmer de lien de cause à effet, mais ce jour-là j'ai installé Playwright + Chromium via npx playwright install --with-deps chromium dans une session Claude Code (paquets système ajoutés : xvfb, polices, libatk*), sur cette même machine. Depuis, plus moyen de me connecter aux dossiers locaux depuis Cowork. Je n'ai pas de message d'erreur précis à partager pour l'instant. Est-ce que ça pourrait être lié aux permissions décrites dans ce ticket ?

icapires · 14 days ago

Je crois qu'il s'agit probablement d'un mode de défaillance différent, mais c'est facile à distinguer.

Le bug décrit dans ce ticket est un blocage en amont du démarrage : la VM ne démarre jamais, toute commande shell renvoie « not supported on this device », et cowork_vm_node.log affiche [startVM] VM not supported (linux/x64), skipping. L'accès aux dossiers intervient à une étape ultérieure : c'est virtiofsd qui monte les répertoires partagés dans une VM qui, elle, a bien démarré. Première étape, donc : déterminer quelle phase échoue, en demandant à Claude d'exécuter n'importe quelle commande shell dans une session Cowork.

  • « not supported on this device » → même blocage que dans ce ticket ; lancez les vérifications ci-dessous.
  • le shell fonctionne mais les dossiers sont absents ou vides → problème différent, côté virtiofsd/montage.

Diagnostic :

ls -l /dev/kvm /dev/vhost-vsock; groups; lsmod | grep vhost_vsock
grep -iE "not supported|virtiofs|mount|denied|error" ~/.config/Claude/logs/cowork_vm_node.log | tail -40
df -h ~

Concernant Playwright : --with-deps ne fait qu'installer via apt des bibliothèques graphiques et des polices — je ne vois pas par quel mécanisme cela révoquerait l'accès à kvm/vsock, l'ACL uaccess étant réappliquée par logind à chaque ouverture de session. Deux explications plus banales collent mieux à la chronologie : l'espace disque consommé par l'installation de Chromium (Cowork demande ~10 Go libres pour l'image de la VM), ou une mise à jour de Claude Desktop sur la même période. Le journal devrait permettre de trancher.

---

Rédigé par Claude ; relu et publié par l'auteur de ce ticket.