Cursor Tab Suggestions Stopped Appearing

Grey inline completions vanished in Cursor? Re-enable Tab, check sign-in/quota, kill Copilot's keybinding, switch to HTTP/1.1, or clear the cache. Step-by-step, verified June 2026.

The grey inline completion that used to follow your cursor just stopped. Pressing Tab inserts a plain indent instead of accepting a suggestion. Sometimes it only fails in certain files.

Fastest fix: click the Tab indicator in the bottom-right status bar. If it shows a slash or says “Disabled,” click it and turn it back on. That single toggle resolves the majority of cases, because Cursor lets you (or a .vscode/settings.json in the repo) snooze or disable Tab without any warning.

Cursor Tab is a low-latency in-house model that needs four things working at once: the client toggle on, a valid sign-in with quota left, an exclusive Tab keybinding, and a network path it can stream over. Break any one and suggestions disappear silently. Rule them out in this order: setting → sign-in/quota → extension conflict → file itself → network.

Which bucket are you in?

SymptomMost likely causeJump to
No Tab in any file, status bar shows Tab off/snoozedToggle disabledStep 1
No Tab anywhere, toggle is onSign-in expired or Hobby quota used upStep 2
Tab appears but pressing Tab indents instead of acceptingAnother extension grabbed the key, or an IME ate itStep 3
Tab works in a scratch file but not your real fileFile too large / disabled language / indexing stuckSteps 4-5
Nothing works on the office network, fine on hotspotProxy blocking HTTP/2Step 6

Common causes

1. Tab toggle is off or snoozed

Cursor moved Tab settings into their own pane. The current path is Cursor → Settings → Cursor Settings → Tab (older builds nested it under “Features”). The quickest control is the Tab status indicator in the bottom-right corner — click it and you can Snooze Tab, “Disable Globally,” or turn it off for specific file types. Any of those, or a repo .vscode/settings.json, can silently switch it off.

How to judge: look at the bottom-right status bar. A dimmed Tab icon or a slash means it is off. Or Cmd+Shift+P → “Preferences: Open Settings (UI)” → search “cursor tab”.

2. Sign-in expired or quota exhausted

Tab runs through Cursor’s backend. An expired login, a used-up free allotment, or a billing lapse makes the server refuse — with no UI alert. As of June 2026, the Hobby (free) plan includes a limited monthly pool of Tab completions (Cursor doesn’t publish the exact number; community reports put it around a couple thousand); Pro ($20/mo, ~$16 annual) gives unlimited Tab regardless of your premium-model credit balance. Each accepted suggestion burns one completion, so heavy Hobby users can run dry well before month-end.

How to judge: bottom-left avatar shows your account? Check remaining completions at cursor.com/dashboard/usage (or Settings → Usage).

3. Another extension or your IME grabbed Tab

GitHub Copilot, Tabnine, IntelliCode, or Codeium installed alongside Cursor fight over the Tab keybinding — last one registered wins, so Tab may trigger the other tool (or nothing). A second culprit, common with Chinese/Japanese/Korean input: an IME (input method editor) intercepts Tab while a candidate window is open.

How to judge: Cmd+Shift+P → “Preferences: Open Keyboard Shortcuts” → search “tab” and see what is bound to Accept Cursor Tab Suggestions. For the IME case, switch to plain English input and retest.

4. File type / size unsupported

Cursor Tab disables itself on binary files, very large files (roughly > 1MB), and some long plain-text documents.

How to judge: open a fresh 50-line .ts test file and start typing; Tab should fire. If it does, the original file is the issue.

5. Disabled language or stuck codebase index

Two file-specific blockers: (a) a language is on the Tab “off for this file type” list (or a repo .vscode/settings.json carries "cursor.cpp.disabledLanguages": ["markdown", "plaintext"]); (b) codebase indexing is stuck — if Cursor cannot index your repo it loses context and quietly stops suggesting.

How to judge: for disabled languages,

grep -r "disabledLanguages" .vscode/ ~/Library/Application\ Support/Cursor/User/settings.json

For indexing, open Settings → Indexing & Docs and check whether the codebase index shows an error or is stuck mid-sync.

6. Network / firewall blocks the Tab backend (usually HTTP/2)

This is the most common failure on corporate networks. Cursor streams all AI features — Tab, chat, indexing — over HTTP/2, and proxies like Zscaler (plus some VPNs and restricted-region routes) block HTTP/2 bidirectional streaming. The Tab request never completes, so no suggestion appears and nothing errors visibly.

How to judge: try a phone hotspot. If Tab works there but not at the office, it is the network. Confirm in View → Output → Cursor (look for a tab request timeout or HTTP/2 stream error).

Before you start

  • Distinguish “no Tab anywhere” vs “no Tab in this one file” — different fixes (use the bucket table above).
  • Commit .vscode/settings.json before tweaking it.
  • Note your Cursor version, the current file path + extension + size.

Info to collect

  • Cursor version, plan (Hobby / Pro / Pro+ / Business).
  • Remaining completions from cursor.com/dashboard/usage.
  • Extensions list (Copilot etc. still installed?).
  • Current file path, size, language.
  • Last 50 lines of View → Output → Cursor.

Shortest fix path

Ordered by hit rate.

Step 1: Confirm Tab is on

Click the Tab indicator in the bottom-right status bar → make sure “Disable Globally” is unchecked and it is not snoozed. Or from settings:

Cursor → Settings → Cursor Settings → Tab → ✓ Enable
Settings (UI) → Editor → Inline Suggest → ✓ Enabled

If Tab appears but pressing Tab does not accept it, run Cmd+Shift+P → “Reload Window” first — a stale window state is a cheap thing to rule out.

Step 2: Check sign-in + quota

Bottom-left avatar — signed in?
cursor.com/dashboard/usage — Tab completions remaining?

Hobby out of completions → wait for the monthly reset or upgrade to Pro. Pro Tab is unlimited but still needs a valid sign-in.

Step 3: Disable conflicting extensions (and rule out the IME)

Extensions panel → GitHub Copilot / Tabnine / Codeium → Disable (Workspace) or Uninstall

If you want to keep Copilot installed, at least turn off its inline suggestions:

// settings.json
{
  "github.copilot.enable": { "*": false }
}

Then re-bind the accept key if needed: Cmd+Shift+P → “Preferences: Open Keyboard Shortcuts” → search Accept Cursor Tab Suggestions → make sure it is bound to Tab. If you use a CJK input method, switch to English input and retest — an IME with an open candidate window often swallows Tab.

Step 4: Test current file vs a fresh file

Create test.ts:

function add(a: number, b

Park the cursor after b, wait about a second. Tab fires → the original file is the problem (size / language / index). Tab does not fire → it is a global issue (settings / sign-in / network).

Step 5: Relax disabled languages and resync the index

Clear any language block:

// settings.json
{
  "cursor.cpp.disabledLanguages": []
}

Then re-index if the codebase index looked stuck: Settings → Indexing & Docs → Sync, let it finish, and reload the window.

Step 6: Switch to HTTP/1.1 or configure the proxy

If Tab works on a hotspot but not on the corporate network, the proxy is almost certainly blocking HTTP/2. Force HTTP/1.1:

Cursor → Settings → Network → HTTP Compatibility Mode → HTTP/1.1 → restart Cursor

Equivalent settings key:

// settings.json
{
  "cursor.general.disableHttp2": true
}

If that does not do it, set the proxy explicitly (Settings → search “proxy” → HTTP proxy URL) and ask IT to allowlist *.cursor.sh and *.cursor.com.

Step 7: Clear the cache (last resort)

A corrupted cache breaks autocomplete in a surprising number of 2026 reports. Quit Cursor completely, then delete the Cache and models folders (Cursor re-downloads what it needs on next launch):

  • macOS: ~/Library/Application Support/Cursor/Cache and .../Cursor/models
  • Windows: %APPDATA%\Cursor\Cache and %APPDATA%\Cursor\models
  • Linux: ~/.config/Cursor/Cache and ~/.config/Cursor/models

How to confirm it’s fixed

  • Type in multiple file types (.ts / .py / .md) — a grey completion appears each time.
  • Restart Cursor and reproduce — confirm it is not a transient blip.
  • Sign into the same account on another machine — Tab works there too (rules out an account-side block).

If it still fails

  • Reduce the repro: fresh file + a one-line function stub.
  • Roll back the most recent Cursor upgrade or settings.json change.
  • Search forum.cursor.com for “tab not suggesting”; include your version + screenshots.
  • Grab View → Output → Cursor logs and post to the Bug Reports board.

FAQ

Why does Tab work in JavaScript but not Markdown? Markdown and plaintext are common entries on the “disabled languages” / “off for this file type” list — either from the bottom-right Tab indicator menu or a repo cursor.cpp.disabledLanguages key. Clear them (Step 5).

Cursor says my Tab quota is unlimited, so why did suggestions stop? Unlimited Tab applies to Pro and above, but it still requires an active sign-in and a working network path. An expired session or an HTTP/2 block looks identical to “out of quota.” Check sign-in (Step 2) and HTTP/1.1 (Step 6).

I pressed Tab and it just indented — is Tab broken? Usually not. Either a grey suggestion was not actually showing, or another extension/your IME owns the key. Verify the Accept Cursor Tab Suggestions binding and disable rival completion extensions (Step 3).

Tab works at home but never at the office. Why? Corporate proxies (Zscaler is the usual one) block the HTTP/2 streaming Cursor uses for AI features. Switch HTTP Compatibility Mode to HTTP/1.1 or have IT allowlist Cursor’s domains (Step 6).

Do I need to re-index after switching branches? If the codebase index errors or gets stuck, suggestions degrade or stop. Re-run Settings → Indexing & Docs → Sync and reload the window (Step 5).

Prevention

  • One completion tool per IDE; do not run Copilot + Cursor side by side.
  • On Hobby, glance at cursor.com/dashboard/usage mid-month so you are not surprised when the free Tab completions run out.
  • On corporate networks, default to HTTP/1.1 mode and ask IT to allowlist *.cursor.sh and *.cursor.com.
  • Be careful editing .vscode/settings.jsondisabledLanguages can silently nuke a whole language for the team.
  • Before high-stakes work, verify Tab still fires after any network switch.

Tags: #Troubleshooting #Cursor #Debug