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

  1. Inspect the InnerException of the thrown GameFrameworkException to find the real parsing failure.
  2. Re-download or rebuild the updatable version list to rule out truncation/corruption.
  3. Ensure the runtime GameFramework version matches the resource build tool version that produced the list.
  4. 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

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


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)