Skill tooltip (ui-menu__tooltip / Floating UI) sometimes stays on screen until manually removed

Where does the bug appear (feature/product)?

Cursor IDE

Describe the Bug

When hovering a Skill chip/pill in Composer (slash-menu style UI), the hover tooltip sometimes does not dismiss and remains visible, overlapping the chat and input. It behaves like a zombie overlay: no obvious close control, and normal mouse movement does not clear it.

Steps to Reproduce

Open Composer / Agent chat with Skills available (e.g. skill shown as a pill or slash-menu entry).
Hover the Skill entry so the description tooltip appears (role=“tooltip”, see below).
Continue using the chat: type, submit a message, switch focus, or remove context – without a clean hover exit from the trigger.
Observed: Tooltip sometimes remains indefinitely.

Expected Behavior

Tooltip should hide when the pointer leaves the trigger, when the trigger unmounts, on Escape/focus change (per normal accessible tooltip patterns), or at least when the composer input is cleared / message submitted.

Actual behavior

Tooltip persists on screen, obscuring content until manually removed from the DOM or the window is reloaded.

Operating System

MacOS

Version Information

Environment
Version: 2.6.21
VSCode Version: 1.105.1
Commit: fea2f546c979a0a4ad1deab23552a43568807590
Date: 2026-03-21T22:09:10.098Z
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.2.0

For AI issues: which model did you use?

n/a

For AI issues: add Request ID with privacy disabled

n/a

Additional Information

Stuck element (from DevTools)

The floating node matched this structure (IDs differ per session)

<div role="tooltip" class="ui-tooltip ui-menu__tooltip" tabindex="-1" data-floating-ui-focusable="" id="…" style="position: absolute; left: …; top: …; transition-property: opacity, transform; transition-duration: 150ms;">
  <span class="ui-slash-menu__tooltip-type">Skill</span>
  <div class="markdown-root" data-size="sm">
    <div class="space-y-4 whitespace-normal *:first:mt-0 *:last:mb-0">
      <p>…skill description markdown…</p>
    </div>
  </div>
</div>

Notable: data-floating-ui-focusable=“” suggests Floating UI; classes tie this to slash menu / menu tooltip styling.

  1. Console error that may correlate (composer / mentions)
    Around the same session, the workbench logged:
ERROR WHEN RENDERING SOLID COMPONENT TypeError: Cannot use 'in' operator to search for 'addedWithoutMention' in undefined
    at … removeMention …
    …
    at … clearText …
    at … submitChatMaybeAbortCurrent …

This points to removeMention running with undefined where an object was expected. That is composer / mention lifecycle code; it may be unrelated or may prevent normal teardown of related UI (including floating layers). Worth checking against this tooltip bug.

Workaround (confirmed)

In DevTools Console, removing the node clears the overlay:

document.querySelector(‘[role=“tooltip”].ui-menu__tooltip’)?.remove()
If multiple tooltips exist, narrow the selector or remove by the specific id. Developer: Reload Window also resets UI state.

Related reports

Possibly the same class of bug as other persistent chat hover tooltips (e.g. “Already in context” stuck on file pills). Link if useful:

Ask for Cursor team

Ensure Floating UI / tooltip open state is cleared when the reference unmounts or when composer text is cleared / submitted.
Audit removeMention path for undefined so Solid does not throw mid-update (may interact with overlay lifecycle).
Optional: setting to disable Skill hover previews or stricter dismiss on any outside interaction.

Does this stop you from using Cursor

Sometimes - I can sometimes use Cursor

Hey, thanks for the detailed report. The DOM structure and the console error are really helpful.

This is a known class of bugs with persistent tooltips in the chat UI. The team is aware of it. We don’t have a specific ETA for a fix yet, but your report helps with prioritization. The detail about the removeMention TypeError is especially valuable since it can block proper teardown of overlays.

The thread you linked about the Already in context tooltip getting stuck is the same kind of issue: "Already in context" tooltip sometimes gets permanently stuck

The DevTools Console workaround you found is currently the best option. As an alternative, Developer: Reload Window via Cmd+Shift+P also resets the state.

Let me know if you notice a reliable repro pattern. That would help a lot with the fix.

1 Like