Setup
- Rancher version: 2.15-head
- Rancher UI Extensions: SUSE OS Management (Elemental)
- Browser type & version: Chrome/Firefox (latest)
Describe the bug
When a UI extension is installed and the user navigates away from the Extensions page and then returns, a duplicate/phantom card for the extension appears in the UI extensions list. The phantom card appears to be loaded from cache or previous state, creating a confusing user experience with multiple entries for the same extension.
To Reproduce
- Install the
ui-plugin-charts repo, branch main
- Open the Extensions page in Rancher Dashboard
- Install a UI extension (e.g., SUSE OS Management/Elemental)
- Navigate away from the Extensions page (e.g., click on another menu item like the SUSE OS Management extension)
- Navigate back to the Extensions page
- Observe the extension card appearing twice or a phantom/stale card appearing
Result

A duplicate or phantom extension card appears in the UI extensions list alongside the actual installed extension. The duplicate persists across navigation.
Expected Result
Only one card for each installed extension should appear in the UI extensions list. When returning to the Extensions page, the list should be refreshed correctly without duplicate or phantom entries.
Additional context
The issue appears to stem from the deduplication logic in the available computed property. Plugin items can be created from two sources:
- Chart versions (via
mapChartToPluginItem)
- Loaded plugins from the backend (via
buildLoadedPluginItem)
When the same extension exists in both sources, a phantom/duplicate card can appear. The deduplication logic should prefer CR-backed entries (which have management capabilities) over phantom loaded-plugin entries. A preference condition of !existing || plugin.uiplugin ensures only the better entry is kept.
Setup
Describe the bug
When a UI extension is installed and the user navigates away from the Extensions page and then returns, a duplicate/phantom card for the extension appears in the UI extensions list. The phantom card appears to be loaded from cache or previous state, creating a confusing user experience with multiple entries for the same extension.
To Reproduce
ui-plugin-charts repo, branchmainResult

A duplicate or phantom extension card appears in the UI extensions list alongside the actual installed extension. The duplicate persists across navigation.
Expected Result
Only one card for each installed extension should appear in the UI extensions list. When returning to the Extensions page, the list should be refreshed correctly without duplicate or phantom entries.
Additional context
The issue appears to stem from the deduplication logic in the
availablecomputed property. Plugin items can be created from two sources:mapChartToPluginItem)buildLoadedPluginItem)When the same extension exists in both sources, a phantom/duplicate card can appear. The deduplication logic should prefer CR-backed entries (which have management capabilities) over phantom loaded-plugin entries. A preference condition of
!existing || plugin.uipluginensures only the better entry is kept.