EllanJiang/GameFramework · error · GameFrameworkException
Parse read-write version list exception
Error message
Parse read-write version list exception '{0}'. What it means
Wraps any non-GameFrameworkException raised while parsing the read-write version list into a GameFrameworkException with the original exception's text and instance attached. Existing GameFrameworkExceptions (like the deserialize-failure one) pass through untouched.
Solutions
- Read InnerException in the message to find the real cause
- Delete the corrupt read-write version list and let the framework rebuild it
- Verify the write path completed (fsync/close) before the previous update finished
- Wrap resource-check start in try-catch to recover via re-download
Example fix
// before: crash propagates
checker.CheckResources();
// after
try { checker.CheckResources(); }
catch (GameFrameworkException ex) { DeleteReadWriteVersionList(); RetryCheck(); } Defensive patterns
Strategy: try-catch
Try / catch
try { checker.CheckResources(); }
catch (GameFrameworkException ex) when (ex.Message.StartsWith("Parse read-write version list exception")) {
Log.Error(ex.InnerException ?? ex);
DeleteReadWriteVersionList(); RetryCheck();
} Prevention
- Inspect InnerException for the underlying I/O or stream error
- Rebuild the sandbox list after any crash during update
- Guard the processing loop against null entries from corrupt data
- Make check startup recoverable via re-download
When it happens
Trigger: An exception other than GameFrameworkException escapes the try block of OnLoadReadWriteVersionListSuccess — e.g. stream read errors on truncated bytes, or errors in the resource/fileSystem iteration loop.
Common situations: Partially written sandbox version list from a crashed update; deserializer hitting unexpected EOF; I/O exceptions reading from persistent storage; bugs in fileSystem name lookup throwing inside the foreach.
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
- Parse read-only version list exception
- Deserialize updatable version list failure.
- Parse updatable version list exception
- Updatable version list
- Read-only version list has been parsed.
AI-assisted analysis of EllanJiang/GameFramework@d0c010b051 (2026-09-15).
Data as JSON: /api/errors/15d97f2462266f23.
Report an issue: GitHub.
Appendix: source
Thrown at GameFramework/Resource/ResourceManager.ResourceChecker.cs:481
}
}
foreach (LocalVersionList.Resource resource in resources)
{
SetReadWriteInfo(new ResourceName(resource.Name, resource.Variant, resource.Extension), (LoadType)resource.LoadType, resource.Length, resource.HashCode);
}
m_ReadWriteVersionListReady = true;
RefreshCheckInfoStatus();
}
catch (Exception exception)
{
if (exception is GameFrameworkException)
{
throw;
}
throw new GameFrameworkException(Utility.Text.Format("Parse read-write version list exception '{0}'.", exception), exception);
}
finally
{
if (memoryStream != null)
{
memoryStream.Dispose();
memoryStream = null;
}
}
}
private void OnLoadReadWriteVersionListFailure(string fileUri, string errorMessage, object userData)
{
if (m_ReadWriteVersionListReady)
{
throw new GameFrameworkException("Read-write version list has been parsed.");
}
View on GitHub (pinned to d0c010b051)