JosefNemec/Playnite · error · NotSupportedInFullscreenException

Cannot open plugin settings in Fullscreen mode.

Error message

Cannot open plugin settings in Fullscreen mode.

What it means

Thrown by Fullscreen-mode MainViewAPI.OpenPluginSettings. The Fullscreen host does not render the per-plugin settings dialog, so the method is a hard stub that throws NotSupportedInFullscreenException with a descriptive message. It is the Fullscreen counterpart to operations that are only wired up in the Desktop host.

Source

Thrown at source/Playnite.FullscreenApp/Api/MainViewAPI.cs:75

        public GroupableField Grouping
        {
            get => GroupableField.None;
            set { }
        }

        public List<Game> FilteredGames => mainModel.GamesView.CollectionView.Cast<GamesCollectionViewEntry>().Select(a => a.Game).Distinct().ToList();

        public Dispatcher UIDispatcher => PlayniteApplication.CurrentNative.Dispatcher;

        public MainViewAPI(FullscreenAppViewModel mainModel)
        {
            this.mainModel = mainModel;
        }

        public bool OpenPluginSettings(Guid pluginId)
        {
            throw new NotSupportedInFullscreenException("Cannot open plugin settings in Fullscreen mode.");
        }

        public void SwitchToLibraryView()
        {
            throw new NotSupportedInFullscreenException();
        }

        public void SelectGame(Guid gameId)
        {
            var game = mainModel.Database.Games.Get(gameId);
            if (game == null)
            {
                logger.Error($"Can't select game, game ID {gameId} not found.");
            }
            else
            {
                mainModel.SelectGame(game.Id);
            }

View on GitHub (pinned to 5911f4e964)

Solutions

  1. Check the active application mode and hide/disable the settings affordance in Fullscreen mode.
  2. Catch NotSupportedInFullscreenException around the call and show a user-friendly message directing them to Desktop mode.
  3. Provide an alternative settings surface that is mode-independent if the feature is essential.

Example fix

// before
PlayniteApi.MainView.OpenPluginSettings(pluginId);

// after
try
{
    PlayniteApi.MainView.OpenPluginSettings(pluginId);
}
catch (NotSupportedInFullscreenException)
{
    Dialogs.ShowMessage("Open plugin settings from Desktop mode.");
}
Defensive patterns

Strategy: validation

Validate before calling

if (PlayniteApi.ApplicationInfo.Mode == ApplicationMode.Desktop)
{
    PlayniteApi.MainView.OpenPluginSettings(pluginId);
}

Try / catch

try { PlayniteApi.MainView.OpenPluginSettings(pluginId); }
catch (NotSupportedInFullscreenException) { Dialogs.ShowMessage("Use Desktop mode."); }

Prevention

When it happens

Trigger: Calling PlayniteApi.MainView.OpenPluginSettings(pluginId) while the process is the FullscreenApp (ApplicationMode.Fullscreen). The Fullscreen MainViewAPI is bound, so the stub runs.

Common situations: A plugin's settings button works in Desktop mode but the same user runs Playnite in Fullscreen; a generic extension UI surfaces a 'Configure' action unconditionally regardless of host.

Related errors


AI-assisted analysis of JosefNemec/Playnite@5911f4e964 (2026-08-13). Data as JSON: /api/errors/777453d0802a7c66. Report an issue: GitHub.