[Bug] Voice input fails silently after auto-update due to broken process attribution (macOS)

Status Open
Reported on v2.1.289
Maintainer reply None cached
Activity 0 comments · opened Oct 6, 2026

Bug Description
Voice dictation silently fails ("No audio detected from microphone") in sessions that outlive an auto-update (macOS) Claude Code 2.1.289, macOS 26.4.1, npm global install under /opt/homebrew, run in VS Code terminal. Root cause: the auto-updater replaces bin/claude.exe in place while sessions are running. A running session's executable becomes an unlinked inode. On the next recording, tccd cannot resolve the process path, so TCC attribution fails and CoreAudio denies the mic to the process. Capture still "starts" but delivers zero-filled buffers, and the client reports "No audio detected". Unified log at the failing start: tccd: proc_pidpath_audittoken() failed from PID[48350]: (#3) No such process tccd: Failed to create attribution chain from message. coreaudiod: HALS_IOContext.cpp:1491 Client is not granted access to the input device. claude[48350]: HALC_ProxyObject::SetPropertyData(...): got an error from the server, 0x21686F67 ('!hog') Evidence: sessions whose executable inode no longer exists fail every time. A session started after the update, on the current inode, works. The same native audio-capture.node loaded in a fresh process records repeatedly with no problem. Restarting / --resume fixes it. Suggestions: install updates into versioned paths (or atomic rename that keeps the old inode reachable by path) instead of replacing the running binary; detect an empty or zero-signal capture right after an update and tell the user to restart instead of blaming the microphone.

Environment Info

  • Platform: darwin
  • Terminal: vscode
  • Version: 2.1.289
  • Feedback ID: f5d6e689-6d24-4760-b04a-47ce8659c181

View original on GitHub ↗