Where does the bug appear (feature/product)?
Cursor IDE
Describe the Bug
Summary
Voice input button enters recording mode and macOS shows the orange mic
indicator, but no transcription appears. DevTools shows
voice-processor.js (failed) net::ERR_FILE_NOT_FOUND. The file is
genuinely missing from the app bundle, not stripped on my side.
Reproduction
- Open Cursor on macOS Apple Silicon
- Open chat → click voice/record button
- Speak — orange mic indicator appears, no transcription is produced
- Click stop → input remains empty
Affected versions
Same bug on both:
- 3.2.21 (commit
806df57ed3b6f1ee0175140d38039a38574ec720, 2026-05-03) - 3.2.14 (commit
6e821a7fc68d5ce5b4ab821f73fe4137e0851e60, 2026-04-28)
Environment
- macOS Tahoe (Darwin arm64 25.3.0), Apple Silicon
- Electron 39.8.1, Chromium 142.0.7444.265
- No VPN, no corporate proxy
- Microphone permission granted; OS-level mic indicator lights up; built-in
mic verified working in other apps - No virtual audio devices intercepting (Continuity mic disabled, no Zoom
processes running)
Console / Network
DevTools → Network when clicking record:
voice-processor.js (failed) net::ERR_FILE_NOT_FOUND Initiator: Other Type: script Size: 0 B Time: 0 ms
Request URL:
vscode-file://vscode-app/Applications/Cursor.app/Contents/Resources/app/out/vs/workbench/contrib/composer/browser/voice/voice-processor.js
Console has only a benign ScriptProcessorNode is deprecated warning — no
other errors.
Filesystem evidence
The expected directory is absent from the bundle:
So nothing on the local machine has tampered with it — the official DMG
appears to genuinely not ship voice-processor.js for this download.
Hypotheses
- The file is intended to be lazy-fetched on first voice use, and that
fetch is failing silently for my account / install (no other request
appears in the Network tab). - The macOS arm64 build inadvertently excluded
vs/workbench/contrib/composer/browser/voice/.
Asks
- Is
voice-processor.jssupposed to be shipped statically or
fetched on demand? - If static: please verify the arm64 build pipeline is including
vs/workbench/contrib/composer/browser/voice/. - If lazy-fetched: please surface the failure in the UI instead of
leaving the recording session hanging silently.
Workaround for now: macOS native dictation works fine in the chat input.
Steps to Reproduce
- Open Cursor on macOS Apple Silicon (3.2.21 or 3.2.14, both reproduce).
- Open the Agent / chat panel.
- Click the voice / microphone button in the chat input.
- Observe: macOS orange microphone indicator appears in the menu bar
(so the OS-level mic is being opened). - Speak for a few seconds.
- Click stop.
Expected: a transcription of the spoken text appears in the chat input.
Actual: input stays empty. No transcription is ever produced.
DevTools confirms why:
- Network tab shows
voice-processor.jsfailing with
(failed) net::ERR_FILE_NOT_FOUNDimmediately (0 ms, 0 B). - Request URL:
vscode-file://vscode-app/Applications/Cursor.app/Contents/Resources/app/out/vs/workbench/contrib/composer/browser/voice/voice-processor.js - The
voice/subdirectory does not exist in the installed app bundle:
composer/browser/only containspreload-webview-browser.js. codesign --verify --verbose=2 /Applications/Cursor.appreports
the bundle as valid and untampered, so the file was never shipped
in the DMG for these versions.
Same on Cursor 3.2.14 (commit 6e821a7fc68d5ce5b4ab821f73fe4137e0851e60)
and Cursor 3.2.21 (commit 806df57ed3b6f1ee0175140d38039a38574ec720),
on macOS Tahoe (Darwin arm64 25.3.0).
Already verified not the cause:
- mic permission (granted, fresh re-grant via
tccutil reset Microphone) - default input device (built-in MacBook mic, working in other apps)
- iPhone Continuity microphone (disabled)
- Zoom processes (none running)
- VPN / proxy (none)
- HTTP/2 setting in Cursor (enabled)
Expected Behavior
Clicking the microphone button in the chat input should:
- Open the microphone (it does — orange mic indicator appears).
- Stream captured audio to Cursor’s transcription service via the
AudioWorkletvoice-processor.js. - Produce a transcription that gets inserted into the chat input
when recording stops.
Currently step 2 cannot start because voice-processor.js is missing
from the app bundle, so no audio frames are ever produced and no
transcription is returned. The recording UI stays “active” indefinitely
with no feedback that the pipeline is broken.
Either:
- the file should be present in
Cursor.app/Contents/Resources/app/out/vs/workbench/contrib/composer/browser/voice/,
or - if it is meant to be lazy-fetched on first use, that fetch should
succeed (or at minimum surface a visible error in the UI rather than
hanging silently).
Screenshots / Screen Recordings
Operating System
MacOS
Version Information
IDE:
Version: 3.2.14
VSCode Version: 1.105.1
Commit: 6e821a7fc68d5ce5b4ab821f73fe4137e0851e60
Date: 2026-04-28T13:25:40.706Z
Layout: editor
Build Type: Stable
Release Track: Default
Electron: 39.8.1
Chromium: 142.0.7444.265
Node.js: 22.22.1
V8: 14.2.231.22-electron.0
OS: Darwin arm64 25.3.0
Also reproduces on Cursor 3.2.21
(Commit 806df57ed3b6f1ee0175140d38039a38574ec720, 2026-05-03T01:46:14.413Z) —
identical bundle layout, identical failure.
Does this stop you from using Cursor
No - Cursor works, but with this issue
