Repository navigation
[Spotify 1.3.1 / Spicetify 2.45.1] Extension menu entries missing: incorrect MenuItem binding and profile-button class mismatch #3965
Description
Summary
On Spotify for Windows 1.3.1.234.g59d6bf59 with Spicetify 2.45.1, Marketplace-installed extensions load, but their added menu entries are missing. This affects Shuffle+ and appears to involve shared Spicetify menu integration rather than failure to download or execute the extension.
Runtime inspection found two separate problems:
Spicetify.ReactComponent.MenuItemresolves to a function with waveform-related props rather than the expected menu-item component.- The profile-menu predicate checks mapped CSS classes that are absent from the actual profile button.
Environment
- Windows 11 Pro, build 26200, x64
- Spotify:
1.3.1.234.g59d6bf59(desktop installation, not Microsoft Store) - Spicetify:
2.45.1 - Marketplace:
1.0.11 - Theme:
marketplace - Custom apps:
marketplace - Extensions installed through Marketplace: adblockify, Spicetify-Hide-Podcasts, Shuffle+, Trash Bin, Spicetify DJ Info, Toggle DJ
The CLI extensions setting is empty because these extensions are loaded by Marketplace. The runtime contains their injected script elements, and Marketplace logs initialization of all six extensions. Shuffle+ settings are present in Spicetify LocalStorage.
Steps to reproduce on the affected installation
- Launch the patched Spotify client with Shuffle+ installed through Marketplace.
- Right-click a playlist in Your Library.
- Look for Play with Shuffle+.
- Open the profile menu and look for Shuffle+ and the other extension settings entries.
Expected
The playlist context menu contains Play with Shuffle+, and the profile menu contains registered extension settings entries.
Actual
Native Spotify menu entries appear, but the expected extension entries do not. Marketplace itself opens and the extension scripts load.
This was investigated on an existing installation, not an isolated clean profile. The Shuffle+ playback action could not be tested through its missing menu entry.
Runtime findings
1. Unexpected component bound to ReactComponent.MenuItem
Inspecting Spicetify.ReactComponent.MenuItem returned a function beginning with:
({threeBandWaveform:e,durationMs:t,isActive:i=!1,isPlaying:f=!1,
onTriggerPlay:h,transitionZones:m=l.M_}) => { /* ... */ }The body also contains waveform-position and tooltip handling. This appears to be a false match in component discovery.
The patched xpui-modules.js does contain the menu injection:
children: [Spicetify.ContextMenuV2.renderItems(), e].flat()A temporary diagnostic wrapper around renderItems() recorded one returned extension element while the playlist context menu was open, but Play with Shuffle+ was absent from the rendered menu. The menu context had a valid playlist URI at props.reference.uri.
This indicates that extension-item registration/filtering reaches the render path, while the component binding is suspect. No replacement component was tested, so this is not a verified patch.
2. Profile-menu predicate no longer matches the button
The installed wrapper uses this predicate for Spicetify.Menu entries:
(n, o, s) => o === "click" && (
s.classList.contains("main-userWidget-boxCondensed") ||
s.classList.contains("main-userWidget-box")
)In the open profile menu's ContextMenuV2 provider:
triggeris"click".targetis the profileBUTTONwithdata-testid="user-widget-link".- The button has Encore classes and
xbwf2n0avSjTCENBLFUM, but neither of the two classes tested above. renderItems()returns zero extension elements.
This separately explains why registered profile-menu entries are filtered out before rendering.
Related issues
- v3.0.0-beta.16: ContextMenuV2 can call React before it is ready on Spotify 1.3.0.277 #3936 / fix(wrapper): keep native menus usable before React capture #3938 concern React capture readiness in v3 beta. This report is for stable 2.45.1 with React available and native menus functioning.
- Shuffle+ not working (resolver not found error) #3859 concerns a Shuffle+ Liked Songs resolver error, rather than missing menu entries.
Activity
rxri commentedon Sep 23, 2026
I cannot reproduce both of the issues. Both issues were already fixed with 4c7498f
Spicetify.ReactComponent.MenuItemresolves to({children: e, disabled: t, divider: i, onClick: a= () => {} , leadingIcon: y, v2LeadingIcon: b, trailingIcon: v, elementRef: O, CheckedIcon: R=s.i, autoClose: N=!0, className: C, innerClassName: P, semanticColor: L, shortcut: k, v2Shortcut: D, menuAction: w, rowSize: U="small", forceV2LeadingIcon: M=!1, implicitType: x=!0, showFullTextOnHover: B=!1, onMouseEnter: V, onMouseLeave: F, onFocus: G, onBlur: H, "aria-checked": j, ...Y})- the function that is used for menu itemsIt seems like you have non-updated wrapper
Tested on:
Edit: Additionally tested on
1.3.1.234.g59d6bf59and it works just fine