From d4a365ae5c8b8246006d9e855b55dc096b21ef82 Mon Sep 17 00:00:00 2001 From: Nicolas Date: Sun, 13 Sep 2026 20:01:45 +0200 Subject: [PATCH] Drop EnableInMainMenu=true - broke Emby's modern ViewManager Real error from the field: navigating to the party page threw inside Emby's own viewmanager.js (v4.10.0.40): TypeError, cannot read properties of undefined (reading lifeCycleAbortSignal), at getResumeOptions/dispatchViewBeforeShow. EnableInMainMenu=true was never confirmed by any real example (only EnableInUserMenu=true was, via the forum thread cited in Plugin.cs) - it very likely routes the page through the newer ViewManager meant for full content views (Home, Movies, ...), which expects a lifecycle contract this static embedded-resource page doesn't provide. Reverting to exactly the confirmed-working combination. The raw page itself was confirmed served correctly beforehand (200, correct content, via GET /web/configurationpage?name=WatchPartyRoom) so the plugin/registration side was never the problem - just this one flag. Co-Authored-By: Claude Sonnet 5 --- src/WatchParty/Plugin.cs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/WatchParty/Plugin.cs b/src/WatchParty/Plugin.cs index 6034cd4..8ae5fcf 100644 --- a/src/WatchParty/Plugin.cs +++ b/src/WatchParty/Plugin.cs @@ -63,7 +63,13 @@ namespace WatchParty Name = "WatchPartyRoom", DisplayName = "Watch Party", EmbeddedResourcePath = GetType().Namespace + ".Configuration.partyPage.html", - EnableInMainMenu = true, + // EnableInMainMenu=true was a guess, not confirmed anywhere, and + // it broke: Emby's modern ViewManager (v4.10.x) crashed trying to + // route this page as a full nav "view" (TypeError reading + // 'lifeCycleAbortSignal' in viewmanager.js - see git history). + // The one real-world confirmed-working example only ever used + // EnableInUserMenu=true with EnableInMainMenu left false/default, + // so that's what this now matches exactly. EnableInUserMenu = true, MenuIcon = "group", IsMainConfigPage = false