EllanJiang/GameFramework · error · GameFrameworkException

Update version list success callback is invalid.

Error message

Update version list success callback is invalid.

What it means

The UpdateVersionListCallbacks constructor requires a non-null success callback; passing null throws GameFrameworkException. Without a success handler the framework could not report a completed version list update, so the object refuses construction.

Solutions

  1. Pass a valid UpdateVersionListSuccessCallback delegate
  2. Verify the handler method exists and matches the delegate signature
  3. Check argument order (success first, failure second)

Example fix

// before
var callbacks = new UpdateVersionListCallbacks(null, OnUpdateVersionListFailure); // throws
// after
var callbacks = new UpdateVersionListCallbacks(OnUpdateVersionListSuccess, OnUpdateVersionListFailure);
Defensive patterns

Strategy: validation

Validate before calling

if (onSuccess != null) {
    var callbacks = new UpdateVersionListCallbacks(onSuccess, onFailure);
}

Type guard

bool IsValidCallbacks(UpdateVersionListSuccessCallback s, UpdateVersionListFailureCallback f) => s != null;

Try / catch

try { var c = new UpdateVersionListCallbacks(successCb, failureCb); } catch (GameFrameworkException ex) when (ex.Message.Contains("success callback")) { log.Error("UpdateVersionListSuccessCallback was null"); }

Prevention

When it happens

Trigger: new UpdateVersionListCallbacks(null, failureCallback) — passing a null UpdateVersionListSuccessCallback, typically because a method reference was not bound or a conditional assignment left it null.

Common situations: Wiring callbacks in Unity where a handler was unassigned in the Inspector; refactoring removed the handler method; passing the arguments in the wrong order.

Related errors


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

Appendix: source

Thrown at GameFramework/Resource/UpdateVersionListCallbacks.cs:36

        /// <summary>
        /// 初始化版本资源列表更新回调函数集的新实例。
        /// </summary>
        /// <param name="updateVersionListSuccessCallback">版本资源列表更新成功回调函数。</param>
        public UpdateVersionListCallbacks(UpdateVersionListSuccessCallback updateVersionListSuccessCallback)
            : this(updateVersionListSuccessCallback, null)
        {
        }

        /// <summary>
        /// 初始化版本资源列表更新回调函数集的新实例。
        /// </summary>
        /// <param name="updateVersionListSuccessCallback">版本资源列表更新成功回调函数。</param>
        /// <param name="updateVersionListFailureCallback">版本资源列表更新失败回调函数。</param>
        public UpdateVersionListCallbacks(UpdateVersionListSuccessCallback updateVersionListSuccessCallback, UpdateVersionListFailureCallback updateVersionListFailureCallback)
        {
            if (updateVersionListSuccessCallback == null)
            {
                throw new GameFrameworkException("Update version list success callback is invalid.");
            }

            m_UpdateVersionListSuccessCallback = updateVersionListSuccessCallback;
            m_UpdateVersionListFailureCallback = updateVersionListFailureCallback;
        }

        /// <summary>
        /// 获取版本资源列表更新成功回调函数。
        /// </summary>
        public UpdateVersionListSuccessCallback UpdateVersionListSuccessCallback
        {
            get
            {
                return m_UpdateVersionListSuccessCallback;
            }
        }

        /// <summary>

View on GitHub (pinned to d0c010b051)