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
- Validate InstallerManifestUrl is non-empty before requesting the installer manifest.
- Re-fetch the addon listing from the repository to populate a valid InstallerManifestUrl.
- 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
- Validate addon manifests from the repository include InstallerManifestUrl.
- Show a clear error in the addon browser when the URL is missing.
- Refresh the addon listing if manifests are incomplete.
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
- Uknown installer manifest url format {InstallerManifestUrl}.
- Extension version string must be a real version!
- LOC.GeneralExtensionPackageError
- Failed to download update manifest.
- Extenstion/theme manifest not found.
AI-assisted analysis of JosefNemec/Playnite@5911f4e964 (2026-08-13).
Data as JSON: /api/errors/d95a85bc0b965d75.
Report an issue: GitHub.