JosefNemec/Playnite · warning · Exception

Failed to download update manifest.

Error message

Failed to download update manifest.

What it means

Thrown when the update manifest could not be retrieved from either the primary or the secondary update URL. GetUpdateManifestData is tried for both endpoints; if both return empty data the method throws because it cannot parse version information. The secondary-URL failure is only logged as a warning, so this final throw means both sources failed.

Source

Thrown at source/Playnite/App/Updater.cs:207

            {
                logger.Warn(e, "Failed to download update manifest from main URL");
            }

            try
            {
                if (string.IsNullOrEmpty(dataString))
                {
                    dataString = GetUpdateManifestData(GetUpdateDataRootUrl("UpdateUrl2"));
                }
            }
            catch (Exception e)
            {
                logger.Warn(e, "Failed to download update manifest from secondary URL");
            }

            if (string.IsNullOrEmpty(dataString))
            {
                throw new Exception("Failed to download update manifest.");
            }

            updateManifest = JsonConvert.DeserializeObject<UpdateManifest>(dataString);
            return updateManifest;
        }

        public Version GetLatestVersion()
        {
            if (updateManifest == null)
            {
                DownloadManifest();
            }

            return updateManifest.Version;
        }

        private string GetUpdateManifestData(string url)
        {

View on GitHub (pinned to 5911f4e964)

Solutions

  1. Verify internet connectivity and that the update hosts are reachable (no DNS/proxy block).
  2. Retry later if the update servers are temporarily down.
  3. Whitelist the update domains on any filtering proxy/​firewall.
  4. Skip the update check (disable automatic updates) if the environment cannot reach the hosts.

Example fix

// before
var manifest = updater.GetLatestVersion();

// after
try
{
    var manifest = updater.GetLatestVersion();
}
catch (Exception e)
{
    logger.Warn(e, "Update check unavailable, skipping.");
}
Defensive patterns

Strategy: retry

Try / catch

try { var latest = updater.GetLatestVersion(); }
catch (Exception e) { logger.Warn(e, "Update manifest unavailable; skipping."); }

Prevention

When it happens

Trigger: DownloadManifest receives empty/null data from the primary UpdateUrl, then also empty data from UpdateUrl2 (or the secondary request threw and was swallowed), leaving dataString empty.

Common situations: Playnite servers are unreachable or returning errors; DNS/proxy/​firewall blocks both update hosts; the client is offline; a captive portal intercepts the request and returns non-manifest content that resolves to empty.

Related errors


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