rocksdanister/lively · warning · ArgumentException

Customisation not supported.

Error message

Customisation not supported.

What it means

Thrown by CustomiseWallpaperViewModel.CreatePropertyCopy when obj.LivelyPropertyPath is null — the wallpaper has no LivelyProperties.json, so there is nothing to customise. ArgumentException signals a bad argument rather than a runtime fault.

Source

Thrown at src/Lively/Lively.UI.Shared/ViewModels/CustomiseWallpaperViewModel.cs:262

                        desktopCore.SendMessageWallpaper(currentScreen, Model, msg);
                        break;
                    case WallpaperArrangement.span:
                    case WallpaperArrangement.duplicate:
                        desktopCore.SendMessageWallpaper(Model, msg);
                        break;
                }
            });
        }

        /// <summary>
        /// Get LivelyProperties.json copy filepath and corresponding screen logic.
        /// </summary>
        /// <param name="obj">LibraryModel object</param>
        /// <returns></returns>
        private (string filePath, DisplayMonitor screen) CreatePropertyCopy(LibraryModel obj, WallpaperArrangement arrangement, DisplayMonitor selectedScreen)
        {
            if (obj.LivelyPropertyPath == null)
                throw new ArgumentException("Customisation not supported.");

            string propertyCopyPath = null;
            DisplayMonitor wallpaperScreen = null;
            var items = desktopCore.Wallpapers.Where(x => x.LivelyInfoFolderPath == obj.LivelyInfoFolderPath);
            if (!items.Any())
            {
                // We create the files only when wallpaper is not running, when launching the wallpaper the Core will create the file for us.
                wallpaperScreen = selectedScreen;
                var dataFolder = Path.Combine(userSettings.Settings.WallpaperDir, Constants.CommonPartialPaths.WallpaperSettingsDir);
                //Create a directory with the wallpaper foldername in SaveData/wpdata/, copy livelyproperties.json into this.
                //Further modifications are done to the copy file.
                string wallpaperDataDirectoryPath = null;
                switch (arrangement)
                {
                    case WallpaperArrangement.per:
                        wallpaperDataDirectoryPath = Path.Combine(dataFolder, new DirectoryInfo(obj.LivelyInfoFolderPath).Name, wallpaperScreen.Index.ToString());
                        break;
                    case WallpaperArrangement.span:

View on GitHub (pinned to c1036feb66)

Solutions

  1. Guard the UI: disable/hide 'Customise' when LivelyPropertyPath is null.
  2. If properties are expected, re-import the wallpaper ensuring LivelyProperties.json is present.
  3. Catch ArgumentException in the customise flow and show 'This wallpaper has no customisable settings.'

Example fix

// before
if (obj.LivelyPropertyPath == null)
    throw new ArgumentException("Customisation not supported.");

// caller-side guard (preferred)
if (string.IsNullOrEmpty(obj.LivelyPropertyPath))
{
    CanCustomise = false;
    return;
}
Defensive patterns

Strategy: validation

Validate before calling

if (string.IsNullOrEmpty(obj.LivelyPropertyPath))
{
    CanCustomise = false;
    return;
}

Type guard

static bool IsCustomisable(LibraryModel obj) => !string.IsNullOrEmpty(obj.LivelyPropertyPath);

Try / catch

try { (var path, var screen) = CreatePropertyCopy(obj, arrangement, selectedScreen); }
catch (ArgumentException ex) when (ex.Message.Contains("Customisation not supported"))
{ ShowInfo("This wallpaper has no customisable settings."); }

Prevention

When it happens

Trigger: CreatePropertyCopy(obj, arrangement, selectedScreen) for a wallpaper whose LivelyPropertyPath is null — typical for plain video/online wallpapers that ship no property schema.

Common situations: User opens 'customise' on a video wallpaper or a web wallpaper with no LivelyProperties.json; the wallpaper was imported in a way that skipped/removed the property file.

Related errors


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