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
- Check the active application mode and hide/disable the settings affordance in Fullscreen mode.
- Catch NotSupportedInFullscreenException around the call and show a user-friendly message directing them to Desktop mode.
- 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
- Hide plugin-settings affordances in Fullscreen mode.
- Branch on application mode for any Desktop-only UI feature.
- Surface a user-friendly message when the host lacks the capability.
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
- Not supported in Desktop mode.
- Not supported in Fullscreen mode.
- Not supported in Fullscreen mode.
- Cannot add file to database, file not found.
- Only one application instance is allowed.
AI-assisted analysis of JosefNemec/Playnite@5911f4e964 (2026-08-13).
Data as JSON: /api/errors/777453d0802a7c66.
Report an issue: GitHub.