rocksdanister/lively · error · MsixNotAllowedException

Program wallpaper on MSIX package not allowed.

Error message

Program wallpaper on MSIX package not allowed.

What it means

Thrown by CreateWallpaper for WallpaperType.app, bizhawk, unity, unityaudio, or godot when PackageUtil.IsRunningAsPackaged is true. MSIX installs run inside an AppContainer sandbox that forbids launching arbitrary external .exe wallpapers, so the factory refuses to start them. The gate is by install/packaging type, not by Windows version.

Source

Thrown at src/Lively/Lively/Factories/WallpaperPluginFactory.cs:163

                            return new VideoMpvPlayer(model.FilePath,
                                model,
                                display,
                                lpFactory.CreateLivelyPropertyFolder(model, display, arrangement, userSettings),
                                userSettings.Settings.VideoPlayerHwAccel,
                                isWindowed: isWindowed,
                                userSettings.Settings.VideoTargetColorSpaceMode);
                        case LivelyPicturePlayer.wmf:
                            return new VideoWmfProcess(model.FilePath, model, display, 0, userSettings.Settings.WallpaperScaling);
                    }
                    break;
                case WallpaperType.app:
                case WallpaperType.bizhawk:
                case WallpaperType.unity:
                case WallpaperType.unityaudio:
                case WallpaperType.godot:
                    if (PackageUtil.IsRunningAsPackaged)
                    {
                        throw new MsixNotAllowedException("Program wallpaper on MSIX package not allowed.");
                    }
                    else
                    {
                        return new ExtPrograms(model.FilePath, model, display,
                          userSettings.Settings.WallpaperWaitTime);
                    }
                case WallpaperType.videostream:
                    if (File.Exists(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "plugins", "mpv", "youtube-dl.exe")))
                    {
                        return new VideoMpvPlayer(model.FilePath,
                            model,
                            display,
                            lpFactory.CreateLivelyPropertyFolder(model, display, arrangement, userSettings),
                            userSettings.Settings.VideoPlayerHwAccel,
                            isWindowed: isWindowed,
                            userSettings.Settings.VideoTargetColorSpaceMode,
                            userSettings.Settings.StreamQuality);
                    }

View on GitHub (pinned to c1036feb66)

Solutions

  1. Install the classic non-MSIX desktop build of Lively to run program wallpapers.
  2. If shipping the MSIX build, disable the 'add program wallpaper' UI when PackageUtil.IsRunningAsPackaged and show an explanatory message.
  3. For Unity/Godot wallpapers, repackage them as web wallpapers instead.

Example fix

// before
if (PackageUtil.IsRunningAsPackaged)
    throw new MsixNotAllowedException("Program wallpaper on MSIX package not allowed.");

// after: surface the limitation in the UI before the user picks the file
if (PackageUtil.IsRunningAsPackaged)
{
    DialogService.Warn(Properties.Resources.MsixProgramWallpaperUnsupported);
    return null;
}
Defensive patterns

Strategy: validation

Validate before calling

static bool IsProgramWallpaperAllowed(LibraryModel model) =>
    !(PackageUtil.IsRunningAsPackaged &&
      (model.LivelyInfo.Type == WallpaperType.app ||
       model.LivelyInfo.Type == WallpaperType.bizhawk ||
       model.LivelyInfo.Type == WallpaperType.unity ||
       model.LivelyInfo.Type == WallpaperType.unityaudio ||
       model.LivelyInfo.Type == WallpaperType.godot));

// use before creating:
if (!IsProgramWallpaperAllowed(model))
    DialogService.Warn(Properties.Resources.MsixProgramWallpaperUnsupported);

Type guard

static bool IsProgramWallpaperType(LibraryModel m) =>
    m.LivelyInfo.Type is WallpaperType.app or WallpaperType.bizhawk
        or WallpaperType.unity or WallpaperType.unityaudio or WallpaperType.godot;

Try / catch

try
{
    var wp = factory.CreateWallpaper(model, display, arrangement);
}
catch (WallpaperPluginFactory.MsixNotAllowedException ex)
{
    Logger.Warn(ex);
    DialogService.Warn("Program wallpapers are not supported in the Store (MSIX) build.");
}

Prevention

When it happens

Trigger: CreateWallpaper called with model.LivelyInfo.Type one of {app, bizhawk, unity, unityaudio, godot} on a build registered as an MSIX package (PackageUtil.IsRunningAsPackaged == true).

Common situations: User installed Lively from the Microsoft Store (MSIX) and tried to set a Unity/Godot/bizhawk or custom .exe wallpaper. Sideloading an .msix bundle hits the same path. The desktop (Inno) build never throws this.

Related errors


AI-assisted analysis of rocksdanister/lively@c1036feb66 (2026-08-13). Data as JSON: /api/errors/cfdf2e9bd3efc761. Report an issue: GitHub.