Windows; Accepting suggestion via Tab doesn't work half the time

Where does the bug appear (feature/product)?

Cursor IDE

Describe the Bug

At random times I will be using Cursor and I will see a code complete suggestion, I will hit the tab key to accept it but instead of it being accepted an actual tab will be inserted.

It will randomly happen, I have no idea what causes it, sometimes I have to restart cursor to get it to start working again, sometimes closing the file/reopening it works.

I’ve completely uninstalled Cursor (deleted profiles and everything from AppData) and reinstalled it, disabled essentially all plugins, and it still happens randomly. I also made sure not to import settings from VSCode.

Steps to Reproduce

Unknown, but it keeps happening randomly.

Expected Behavior

When i hit tab it should accept the suggestion, not insert a tab.

Operating System

Windows 10/11

Version Information

Version: 2.4.21 (user setup)
VSCode Version: 1.105.1
Commit: dc8361355d709f306d5159635a677a571b277bc0
Date: 2026-01-22T16:57:59.675Z
Build Type: Stable
Release Track: Default
Electron: 39.2.7
Chromium: 142.0.7444.235
Node.js: 22.21.1
V8: 14.2.231.21-electron.0
OS: Windows_NT x64 10.0.22631

Additional Information

The only extensions i have installed are

.Net Install Tool
C#
EditorConfig for VSCode
GitLens
Slang

This happens with both C# and TypeScript projects.

Does this stop you from using Cursor

Sometimes - I can sometimes use Cursor

Hey, thanks for the report. This is a known issue.

Try these workarounds:

  1. Disable HTTP/2 (most common fix):
  • Go to Settings > search for “HTTP/2” > enable “Disable HTTP/2”
  • Restart Cursor
  • This user had the same problem, and it helped.
  1. Extensions toggle:
  • Go to Help > Extensions > three dots > Disable All Installed Extensions
  • Restart Cursor
  • Turn the extensions back on and restart again
  • This method worked for someone.
  1. Network check:
  • Go to Cursor Settings > Network > Run Diagnostics
  • If there are any errors, please share a screenshot here.

Let me know what worked (or didn’t) - it’ll help us understand what triggers the bug.

1 Like

Hey,
I just had the same issue, I tried option 1 which resolved it for me, however suspecting it didn’t actually have to do anything with that I set it back to HTTP/2 and it still worked, even after reloading Cursor it still worked.
So I suspect that most “fixes” that involve Reloading the Window may just resolve the consequences of resulted to the TAB Functionality to hang and not actually preventing them in the first place (but I may be wrong obviously)

So my “easiest” fix was Pressing Ctrl + Shift + P for Command pallet and then choosing Developer: Reload Window - but its probably just a bandaid instant helper rather than preventing the cause

1 Like

I don’t understand how disabling HTTP/2 or doing a network check would help this issue. The issue isn’t with tab complete not showing up, it’s about it not being accepted. I see the suggestion just fine and I can see in the output window it’s communicating with the server and with the model. When i click tab to accept the suggestion that just a tab is inserted? Am i misunderstanding and there is some sort of network call involved in accepting the suggestion?

Both of the posts you linked me to are of a different problem. Not the problem I am having.

I tried method 2 and it doesn’t consistently solve the issue.

Thanks for the clarification. You’re right, my earlier suggestions weren’t aimed at your case. HTTP/2 and network issues matter when suggestions don’t show up at all, but you can see them, Tab just doesn’t work.

This looks like a keybinding conflict. Some extension is likely catching Tab before Cursor can handle it. I’ve seen similar issues with Vim and Emacs extensions.

Can you check what actually triggers when you press Tab:

  • Ctrl + Shift + PDeveloper: Toggle Keyboard Shortcuts Troubleshooting
  • When the suggestion shows up, press Tab
  • Check the Output panel (View → Output) to see what got logged

Paste the lines like [KeybindingService]: From X keybinding entries, matched... here. That will show which command runs instead of editor.action.acceptCursorTabSuggestion.

If you want a workaround right now, add this to keybindings.json (Ctrl + Shift + PPreferences: Open Keyboard Shortcuts (JSON)):

{
  "key": "tab",
  "command": "editor.action.acceptCursorTabSuggestion",
  "when": "cpp.shouldAcceptTab"
}

This is a known bug, but the log will help identify what’s conflicting on your setup.

2026-01-30 15:30:00.731 [info] [Window] [KeybindingService]: | Resolving Tab
2026-01-30 15:30:00.731 [info] [Window] [KeybindingService]: \ From 12 keybinding entries, matched tab, when: editorTextFocus && !editorReadonly && !editorTabMovesFocus, source: built-in.
2026-01-30 15:30:00.731 [info] [Window] [KeybindingService]: / Received keydown event - modifiers: , code: Tab, keyCode: 9, key: Tab
2026-01-30 15:30:00.731 [info] [Window] [KeybindingService]: | Converted keydown event - modifiers: , code: Tab, keyCode: 2 (‘Tab’)
2026-01-30 15:30:00.731 [info] [Window] [KeybindingService]: | Resolving Tab
2026-01-30 15:30:00.731 [info] [Window] [KeybindingService]: \ From 12 keybinding entries, matched tab, when: editorTextFocus && !editorReadonly && !editorTabMovesFocus, source: built-in.
2026-01-30 15:30:00.732 [info] [Window] [KeybindingService]: + Invoking command tab.

I’ve been there, too. Here’s the log

Thanks for the log, I can see the issue. Tab is matching the default tab command instead of editor.action.acceptCursorTabSuggestion. This is a known keybinding issue.

Try this workaround, add this to keybindings.json:

{
  "key": "tab",
  "command": "editor.action.acceptCursorTabSuggestion",
  "when": "cpp.shouldAcceptTab"
}

This fixed it for a few users with a similar setup: Tab broken in version 0.46.3 (MacOS) - #2 by jhirn

If it doesn’t help, or it starts acting weird in other cases like when pressing Tab without suggestions, try a more specific when:

{
  "key": "tab",
  "command": "editor.action.acceptCursorTabSuggestion",
  "when": "editorTextFocus && cpp.shouldAcceptTab && !editorReadonly"
}

Let me know if it worked or not, it’ll help figure out what’s causing the conflict in your setup.

I tried the solutions you suggested but they didn’t work. I see this in the debug:

2026-01-30 22:44:07.469 [info] [Window] [KeybindingService]: \ From 13 keybinding entries, matched tab, when: editorTextFocus && !editorReadonly && !editorTabMovesFocus, source: built-in.

2026-01-30 22:44:07.469 [info] [Window] [KeybindingService]: / Received  keydown event - modifiers: [], code: Tab, keyCode: 9, key: Tab

2026-01-30 22:44:07.469 [info] [Window] [KeybindingService]: | Converted keydown event - modifiers: [], code: Tab, keyCode: 2 (‘Tab’)

2026-01-30 22:44:07.469 [info] [Window] [KeybindingService]: | Resolving Tab

2026-01-30 22:44:07.469 [info] [Window] [KeybindingService]: \ From 13 keybinding entries, matched tab, when: editorTextFocus && !editorReadonly && !editorTabMovesFocus, source: built-in.

2026-01-30 22:44:07.469 [info] [Window] [KeybindingService]: + Invoking command tab.