EllanJiang/GameFramework · error · GameFrameworkException

You can not use CheckVersionList at this time.

Error message

You can not use CheckVersionList at this time.

What it means

Thrown by ResourceManager.CheckVersionList when the current resource mode is not Package. Version-list checking only applies in non-package modes where resources are updated externally; in Package mode all resources are local and version checking is meaningless.

Solutions

  1. Ensure the ResourceComponent fully initialized so m_VersionListProcessor is created before CheckVersionList.
  2. Use the framework's component lifecycle instead of instantiating ResourceManager directly.
  3. Verify no code destroys resource helper components mid-run.

Example fix

// before
var rm = new ResourceManager();
rm.CheckVersionList(version);
// after
// wait for ResourceComponent Awake, then:
m_ResourceComponent.CheckVersionList(version);
Defensive patterns

Strategy: validation

Validate before calling

if (m_ResourceComponent.ResourceMode == ResourceMode.Updatable && m_ResourceComponent.Ready)
    m_ResourceComponent.CheckVersionList(version);

Try / catch

try { m_ResourceComponent.CheckVersionList(v); }
catch (GameFrameworkException e) { Log.Fatal("VersionListProcessor not ready: {0}", e.Message); }

Prevention

When it happens

Trigger: Calling CheckVersionList in Updatable mode before the VersionListProcessor helper component was created, or after partial teardown of ResourceManager helpers.

Common situations: Bypassing the GameFramework ResourceComponent lifecycle, calling update-flow APIs before component Awake ran, or helpers destroyed and not recreated.

Understand the failure class

Background: "not installed", "pip install", "required for": how missing-dependency errors surface across open-source libraries — this error's family across 34 libraries.

Related errors


AI-assisted analysis of EllanJiang/GameFramework@d0c010b051 (2026-09-15). Data as JSON: /api/errors/9e11616476ce8aea. Report an issue: GitHub.

Appendix: source

Thrown at GameFramework/Resource/ResourceManager.cs:1134

        /// 使用可更新模式并检查版本资源列表。
        /// </summary>
        /// <param name="latestInternalResourceVersion">最新的内部资源版本号。</param>
        /// <returns>检查版本资源列表结果。</returns>
        public CheckVersionListResult CheckVersionList(int latestInternalResourceVersion)
        {
            if (m_ResourceMode == ResourceMode.Unspecified)
            {
                throw new GameFrameworkException("You must set resource mode first.");
            }

            if (m_ResourceMode != ResourceMode.Updatable && m_ResourceMode != ResourceMode.UpdatableWhilePlaying)
            {
                throw new GameFrameworkException("You can not use CheckVersionList without updatable resource mode.");
            }

            if (m_VersionListProcessor == null)
            {
                throw new GameFrameworkException("You can not use CheckVersionList at this time.");
            }

            return m_VersionListProcessor.CheckVersionList(latestInternalResourceVersion);
        }

        /// <summary>
        /// 使用可更新模式并更新版本资源列表。
        /// </summary>
        /// <param name="versionListLength">版本资源列表大小。</param>
        /// <param name="versionListHashCode">版本资源列表哈希值。</param>
        /// <param name="versionListCompressedLength">版本资源列表压缩后大小。</param>
        /// <param name="versionListCompressedHashCode">版本资源列表压缩后哈希值。</param>
        /// <param name="updateVersionListCallbacks">版本资源列表更新回调函数集。</param>
        public void UpdateVersionList(int versionListLength, int versionListHashCode, int versionListCompressedLength, int versionListCompressedHashCode, UpdateVersionListCallbacks updateVersionListCallbacks)
        {
            if (updateVersionListCallbacks == null)
            {
                throw new GameFrameworkException("Update version list callbacks is invalid.");

View on GitHub (pinned to d0c010b051)