JosefNemec/Playnite · error · Exception

No addon manifest installer url.

Error message

No addon manifest installer url.

What it means

Thrown by AddonManifest.DownloadInstallerManifest when InstallerManifestUrl is null or empty. The method cannot fetch the installer manifest without a source URL; the check precedes the http/file dispatch and is a hard precondition for addon installation.

Source

Thrown at source/Playnite/Manifests/AddonManifests.cs:228

        }

        public override string ToString()
        {
            return Name;
        }

        public void DownloadInstallerManifest()
        {
            DownloadInstallerManifest(new CancellationToken());
        }

        public void DownloadInstallerManifest(CancellationToken cancelToken)
        {
            try
            {
                if (InstallerManifestUrl.IsNullOrEmpty())
                {
                    throw new Exception("No addon manifest installer url.");
                }

                if (InstallerManifestUrl.StartsWith("http", StringComparison.OrdinalIgnoreCase))
                {
                    installerManifest = PlayniteApplication.Current.ServicesClient.GetAddonInstaller(AddonId);
                }
                else if (File.Exists(InstallerManifestUrl))
                {
                    installerManifest = Serialization.FromYamlFile<AddonInstallerManifest>(InstallerManifestUrl);
                }
                else
                {
                    throw new Exception($"Uknown installer manifest url format {InstallerManifestUrl}.");
                }
            }
            catch (Exception exc) when (!PlayniteEnvironment.ThrowAllErrors)
            {
                logger.Error(exc, "Failed to get addon installer manifest data.");

View on GitHub (pinned to 5911f4e964)

Solutions

  1. Validate InstallerManifestUrl is non-empty before requesting the installer manifest.
  2. Re-fetch the addon listing from the repository to populate a valid InstallerManifestUrl.
  3. If installing from a local file, ensure the manifest's InstallerManifestUrl points at a real path or http URL.

Example fix

// before
if (InstallerManifestUrl.IsNullOrEmpty()) { throw new Exception("No addon manifest installer url."); }

// after
if (InstallerManifestUrl.IsNullOrEmpty()) {
    logger.Warn($"Addon {AddonId} has no installer manifest URL; cannot download.");
    installerManifest = new AddonInstallerManifest();
    return;
}
Defensive patterns

Strategy: validation

Validate before calling

// Confirm the installer URL is set before downloading.
if (manifest.InstallerManifestUrl.IsNullOrEmpty()) {
    logger.Warn($"Addon {manifest.AddonId} has no installer URL.");
    return;
}

Type guard

static bool HasInstallerUrl(AddonManifest m) => !m.InstallerManifestUrl.IsNullOrEmpty();

Prevention

When it happens

Trigger: Calling DownloadInstallerManifest on an AddonManifest whose InstallerManifestUrl was never set — e.g. a manifest parsed from a source that omitted the field, or an addon record built in memory without the url.

Common situations: Addon repository returned a manifest missing the installer URL; a localized/older manifest schema omitted the field; manual addon registration skipped the URL.

Related errors


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