Voice input doesn't work

Where does the bug appear (feature/product)?

Cursor IDE

Describe the Bug

When enabling Voice Input, no text appears in the prompt.

Steps to Reproduce

  1. Click on the chat’s microphone icon to enable Voice Input.
  2. Verify that it’s recording and start speaking.
  3. Finish speaking and see that no text appears, even after stopping the recording.

Expected Behavior

Text output should appear after finishing speaking.

Screenshots / Screen Recordings

Operating System

MacOS

Current Cursor Version (Menu → About Cursor → Copy)

Version: 2.0.54
VSCode Version: 1.99.3
Commit: 7a31bffd467aa2d9adfda69076eb924e9062cb20
Date: 2025-11-03T22:40:44.657Z
Electron: 37.7.0
Chromium: 138.0.7204.251
Node.js: 22.20.0
V8: 13.8.258.32-electron.0
OS: Darwin x64 24.6.0

Does this stop you from using Cursor

No - Cursor works, but with this issue

Hey @dny_ex, from my understanding and testing, the stop button shouldn’t be necessary; the text should appear as you speak. The transcription speed may depend on the machine’s processing capacity, though. If you wait without clicking the stop button, does the text appear?

Nope. It never appeared.

And I checked my System Settings, and voice recording is enabled for Cursor.

That’s odd. Is it only Voice Input that’s not working, while other Cursor AI features like the Agent work fine?

To narrow it down, could you let me know:

  • Does updating to v2.0.60 help?
  • Does the issue persist after disabling extensions? (cursor --disable-extensions)
  • What does Network Diagnostics report? Does it show all green? (Cursor Settings → Network → Run Diagnostics)
  • Have you tried turning off HTTP/2? (Cursor Settings → Network → Disable HTTP/2)

Let me know if any of these change the behavior.

while other Cursor AI features like the Agent work fine?

Nah. I have multiple issues with Cursor that I’ve been reporting as I’ve been finding them:

Does updating to v2.0.60 help?

Nope. Still an issue:

Version: 2.0.64
VSCode Version: 1.99.3
Commit: 25412918da7e74b2686b25d62da1f01cfcd27680
Date: 2025-11-06T04:35:14.424Z
Electron: 37.7.0
Chromium: 138.0.7204.251
Node.js: 22.20.0
V8: 13.8.258.32-electron.0
OS: Darwin x64 24.6.0

Does the issue persist after disabling extensions? (cursor --disable-extensions)

Yep.

What does Network Diagnostics report? Does it show all green? (Cursor Settings → Network → Run Diagnostics)

All green. Here are the logs:

3.221.136.206, 98.83.125.169 in 2ms
[2025-11-06T08:04:05.619Z] Resolved to 98.86.74.37, 52.22.131.1, 54.159.154.185, 44.221.13.74, 52.45.207.89, 54.175.207.123, 3.221.136.206, 98.83.125.169 in 1ms
[2025-11-06T08:04:05.620Z] Resolved to 98.86.74.37, 52.22.131.1, 54.159.154.185, 44.221.13.74, 52.45.207.89, 54.175.207.123, 3.221.136.206, 98.83.125.169 in 0ms
[2025-11-06T08:04:05.620Z] Resolved to 98.86.74.37, 52.22.131.1, 54.159.154.185, 44.221.13.74, 52.45.207.89, 54.175.207.123, 3.221.136.206, 98.83.125.169 in 0ms
[2025-11-06T08:04:05.620Z] Result: true

[2025-11-06T08:04:05.548Z] Start
[2025-11-06T08:04:06.234Z] URL: https://api2.cursor.sh/
[2025-11-06T08:04:06.234Z] Status: 200
[2025-11-06T08:04:06.234Z] IP: 98.86.74.37
[2025-11-06T08:04:06.234Z] Issuer: C=US; O=Amazon; CN=Amazon RSA 2048 M03
[2025-11-06T08:04:06.234Z] Name: api2.cursor.sh
[2025-11-06T08:04:06.234Z] AltName: DNS:api2.cursor.sh, DNS:prod.authentication.cursor.sh, DNS:*.api2.cursor.sh
[2025-11-06T08:04:06.234Z] DNS Time: 4ms
[2025-11-06T08:04:06.234Z] Connect Time: 4ms
[2025-11-06T08:04:06.234Z] TLS Time: 441ms
[2025-11-06T08:04:06.234Z] Result: true in 686ms

[2025-11-06T08:04:05.548Z] Start
[2025-11-06T08:04:06.233Z] Result: true

[2025-11-06T08:04:05.549Z] Sending ping 1
[2025-11-06T08:04:06.293Z] Response: 'ping' in 744ms
[2025-11-06T08:04:06.293Z] Sending ping 2
[2025-11-06T08:04:06.973Z] Response: 'ping' in 680ms
[2025-11-06T08:04:06.973Z] Sending ping 3
[2025-11-06T08:04:07.699Z] Response: 'ping' in 726ms
[2025-11-06T08:04:07.699Z] Sending ping 4
[2025-11-06T08:04:08.460Z] Response: 'ping' in 761ms
[2025-11-06T08:04:08.460Z] Sending ping 5
[2025-11-06T08:04:09.132Z] Response: 'ping' in 672ms
[2025-11-06T08:04:09.132Z] Result: true

[2025-11-06T08:04:05.550Z] Starting streamSSE
[2025-11-06T08:04:06.302Z] Response: 'foo' in 751ms
[2025-11-06T08:04:07.296Z] Response: 'foo' in 994ms
[2025-11-06T08:04:08.295Z] Response: 'foo' in 999ms
[2025-11-06T08:04:09.295Z] Response: 'foo' in 1000ms
[2025-11-06T08:04:10.298Z] Response: 'foo' in 1003ms
[2025-11-06T08:04:11.298Z] Result: true

[2025-11-06T08:04:05.551Z] Starting stream
[2025-11-06T08:04:05.552Z] Pushing first message
[2025-11-06T08:04:06.419Z] Response: 'foo' in 867ms
[2025-11-06T08:04:06.920Z] Pushing next message
[2025-11-06T08:04:07.623Z] Response: 'foo' in 1204ms
[2025-11-06T08:04:08.124Z] Pushing next message
[2025-11-06T08:04:08.834Z] Response: 'foo' in 1211ms
[2025-11-06T08:04:09.335Z] Pushing next message
[2025-11-06T08:04:10.133Z] Response: 'foo' in 1299ms
[2025-11-06T08:04:10.634Z] Pushing next message
[2025-11-06T08:04:11.331Z] Response: 'foo' in 1198ms
[2025-11-06T08:04:11.331Z] Result: true

[2025-11-06T08:04:05.547Z] Host: marketplace.cursorapi.com
[2025-11-06T08:04:06.679Z] Response in 1132ms
[2025-11-06T08:04:06.679Z] Response: 200 
[2025-11-06T08:04:06.679Z] Response Type: cors
[2025-11-06T08:04:06.679Z] Server: null
[2025-11-06T08:04:06.679Z] Result: OK in 1132ms

Have you tried turning off HTTP/2? (Cursor Settings → Network → Disable HTTP/2)

I don’t have a “Disable HTTP/2” button on my Cursor Settings → Network section, but I am in HTTP/1.1. I think it’s the same, no?

Hey, can you go to Help > Toggle developer tools > Check console for any errors when you press the mic button?

Here you go:

The initial deprecation warning appeared when I pressed the mic button.

The errors appeared when I stopped the recording.

Hey, thanks for the report. The logs clearly show the issue - the AudioWorklet file voice-processor.js is missing from the app bundle.

Temporary workaround that helped some Mac users:

  • System Settings > Sound > Input - slightly move the input volume slider to reinitialize the microphone

This looks like a packaging bug affecting multiple users on Mac and Linux.

Since you’re seeing several issues, please share if there’s anything unique about your setup (corporate network, security software, custom shell configuration, etc.) that could be a common factor.

The workaround didn’t work. I still have the issue.

As per your question about my unique setup, nothing unique tbh: I’m on a residential ISP network (not corporate), no security software (just the standard macOS security features that come with Sequoia), custom shell configuration: only using oh-my-zsh ; nothing out of the ordinary, but in case it’s helpful, here is my ~/.zshrc file:

# If you come from bash you might have to change your $PATH.
# export PATH=$HOME/bin:/usr/local/bin:$PATH

# Path to your oh-my-zsh installation.
export ZSH="$HOME/.oh-my-zsh"

# Set name of the theme to load --- if set to "random", it will
# load a random theme each time oh-my-zsh is loaded, in which case,
# to know which specific one was loaded, run: echo $RANDOM_THEME
# See https://github.com/ohmyzsh/ohmyzsh/wiki/Themes
ZSH_THEME="agnoster"

# Set list of themes to pick from when loading at random
# Setting this variable when ZSH_THEME=random will cause zsh to load
# a theme from this variable instead of looking in $ZSH/themes/
# If set to an empty array, this variable will have no effect.
# ZSH_THEME_RANDOM_CANDIDATES=( "robbyrussell" "agnoster" )

# Uncomment the following line to use case-sensitive completion.
# CASE_SENSITIVE="true"

# Uncomment the following line to use hyphen-insensitive completion.
# Case-sensitive completion must be off. _ and - will be interchangeable.
# HYPHEN_INSENSITIVE="true"

# Uncomment one of the following lines to change the auto-update behavior
# zstyle ':omz:update' mode disabled  # disable automatic updates
# zstyle ':omz:update' mode auto      # update automatically without asking
# zstyle ':omz:update' mode reminder  # just remind me to update when it's time

# Uncomment the following line to change how often to auto-update (in days).
# zstyle ':omz:update' frequency 13

# Uncomment the following line if pasting URLs and other text is messed up.
# DISABLE_MAGIC_FUNCTIONS="true"

# Uncomment the following line to disable colors in ls.
# DISABLE_LS_COLORS="true"

# Uncomment the following line to disable auto-setting terminal title.
# DISABLE_AUTO_TITLE="true"

# Uncomment the following line to enable command auto-correction.
# ENABLE_CORRECTION="true"

# Uncomment the following line to display red dots whilst waiting for completion.
# You can also set it to another string to have that shown instead of the default red dots.
# e.g. COMPLETION_WAITING_DOTS="%F{yellow}waiting...%f"
# Caution: this setting can cause issues with multiline prompts in zsh < 5.7.1 (see #5765)
COMPLETION_WAITING_DOTS="true"

# Uncomment the following line if you want to disable marking untracked files
# under VCS as dirty. This makes repository status check for large repositories
# much, much faster.
# DISABLE_UNTRACKED_FILES_DIRTY="true"

# Uncomment the following line if you want to change the command execution time
# stamp shown in the history command output.
# You can set one of the optional three formats:
# "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd"
# or set a custom format using the strftime function format specifications,
# see 'man strftime' for details.
# HIST_STAMPS="mm/dd/yyyy"

# Would you like to use another custom folder than $ZSH/custom?
# ZSH_CUSTOM=/path/to/new-custom-folder

# Which plugins would you like to load?
# Standard plugins can be found in $ZSH/plugins/
# Custom plugins may be added to $ZSH_CUSTOM/plugins/
# Example format: plugins=(rails git textmate ruby lighthouse)
# Add wisely, as too many plugins slow down shell startup.
plugins=(git)

source $ZSH/oh-my-zsh.sh

# User configuration

# export MANPATH="/usr/local/man:$MANPATH"

# You may need to manually set your language environment
# export LANG=en_US.UTF-8

# Preferred editor for local and remote sessions
# if [[ -n $SSH_CONNECTION ]]; then
#   export EDITOR='vim'
# else
#   export EDITOR='mvim'
# fi

# Compilation flags
# export ARCHFLAGS="-arch x86_64"

# Set personal aliases, overriding those provided by oh-my-zsh libs,
# plugins, and themes. Aliases can be placed here, though oh-my-zsh
# users are encouraged to define aliases within the ZSH_CUSTOM folder.
# For a full list of active aliases, run `alias`.
#
# Example aliases
# alias zshconfig="mate ~/.zshrc"
# alias ohmyzsh="mate ~/.oh-my-zsh"

prompt_context() {
  if [[ "$USER" != "$DEFAULT_USER" || -n "$SSH_CLIENT" ]]; then
    prompt_segment white magenta "%(!.%{%F{yellow}%}.)BATMAN"
  fi
}

prompt_end() {
  if [[ -n $CURRENT_BG ]]; then
      print -n "%{%k%F{$CURRENT_BG}%}$SEGMENT_SEPARATOR"
  else
      print -n "%{%k%}"
  fi

  print -n "%{%f%}"
  CURRENT_BG=''

  #Adds the new line and ➜ as the start character.
  printf "\n ➜";
}

export PATH=$PATH:$HOME/.zokrates/bin

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  # This loads nvm bash_completion

export NARGO_HOME="$HOME/.nargo"

export PATH="$PATH:$NARGO_HOME/bin"

# Created by `pipx` on 2024-07-22 21:42:37
export PATH="$PATH:$HOME/.local/bin"
export PATH=$PATH:$HOME/go/bin

eval "$(direnv hook zsh)"

export GH_PAGER=cat
export PATH="/opt/homebrew/opt/postgresql@15/bin:$PATH"
1 Like