EllanJiang/GameFramework · error · GameFrameworkException
Parse updatable version list exception
Error message
Parse updatable version list exception '{0}'. What it means
The catch block in OnLoadUpdatableVersionListSuccess rethrows GameFrameworkExceptions as-is, but any other unexpected exception raised while parsing the updatable version list (deserializer errors, index/array errors, null refs in list processing) is wrapped as a new GameFrameworkException with the message 'Parse updatable version list exception ...' and the original exception as InnerException.
Solutions
- Inspect the InnerException of the thrown GameFrameworkException to find the real parsing failure.
- Re-download or rebuild the updatable version list to rule out truncation/corruption.
- Ensure the runtime GameFramework version matches the resource build tool version that produced the list.
- Re-download the file (check compression/checksum handling in your ResourceHelper).
Example fix
// before: opaque crash during parse
// after: log inner exception to diagnose
catch (GameFrameworkException ex)
{
Debug.LogError($"Parse failed: {ex.Message}\nInner: {ex.InnerException}");
} Defensive patterns
Strategy: try-catch
Try / catch
try { m_ResourceComponent.UpdateResourceAsync(); }
catch (GameFrameworkException ex) when (ex.Message.StartsWith("Parse updatable version list exception"))
{
Debug.LogError($"Version list parse failed: {ex.Message}\nInner: {ex.InnerException}");
// delete cached list and retry download once
} Prevention
- Log InnerException — it holds the real serializer/array failure.
- Re-download the list if the download may have been truncated or corrupted.
- Keep resource build tool version and runtime GameFramework version in lockstep.
When it happens
Trigger: Any non-GameFramework exception during version-list parsing in OnLoadUpdatableVersionListSuccess — malformed binary data causing serializer exceptions, out-of-range indexes in resources/fileSystems arrays, or null references while building asset/resource info dictionaries.
Common situations: Corrupted or partially downloaded GameFrameworkList.dat; a version list built by a newer/older framework version with a different binary layout; custom serializer bugs.
Understand the failure class
Background: JSON parse error: "Unexpected token" / "not valid JSON" / "failed to parse" — what JSON parsers are really complaining about — this error's family across 45 libraries.
Related errors
- Deserialize updatable version list failure.
- Updatable version list
- Read-only version list has been parsed.
- Deserialize read-only version list failure.
- Parse read-only version list exception
AI-assisted analysis of EllanJiang/GameFramework@d0c010b051 (2026-09-15).
Data as JSON: /api/errors/a8f17abbf09d0cd2.
Report an issue: GitHub.
Appendix: source
Thrown at GameFramework/Resource/ResourceManager.ResourceChecker.cs:351
{
continue;
}
group.AddResource(new ResourceName(resource.Name, resource.Variant, resource.Extension), resource.Length, resource.CompressedLength);
}
}
m_UpdatableVersionListReady = true;
RefreshCheckInfoStatus();
}
catch (Exception exception)
{
if (exception is GameFrameworkException)
{
throw;
}
throw new GameFrameworkException(Utility.Text.Format("Parse updatable version list exception '{0}'.", exception), exception);
}
finally
{
if (memoryStream != null)
{
memoryStream.Dispose();
memoryStream = null;
}
}
}
private void OnLoadUpdatableVersionListFailure(string fileUri, string errorMessage, object userData)
{
throw new GameFrameworkException(Utility.Text.Format("Updatable version list '{0}' is invalid, error message is '{1}'.", fileUri, string.IsNullOrEmpty(errorMessage) ? "<Empty>" : errorMessage));
}
private void OnLoadReadOnlyVersionListSuccess(string fileUri, byte[] bytes, float duration, object userData)
{View on GitHub (pinned to d0c010b051)