EllanJiang/GameFramework · error · GameFrameworkException

There is no resource group being updated.

Error message

There is no resource group being updated.

What it means

Thrown by ResourceUpdater.StopUpdateResources when UpdateResources was never started, i.e. no resource group is currently in an updating state. It is a state guard preventing a meaningless stop; only call StopUpdateResources after UpdateResources has begun an update.

Solutions

  1. Track whether an update is running (via ResourceUpdateStart/ResourceUpdateAllComplete events) and only call StopUpdateResources in that window.
  2. Treat this as a non-error in your flow: check your own started/stopped state before calling, or catch and ignore.
  3. Debounce the stop call so repeated cancel clicks only invoke it once.

Example fix

// before
resourceComponent.StopUpdateResources();
// after
if (m_UpdateStarted && !m_UpdateFinished)
{
    resourceComponent.StopUpdateResources();
    m_UpdateStarted = false;
}
Defensive patterns

Strategy: validation

Validate before calling

if (m_UpdateStarted && !m_UpdateFinished) { resourceComponent.StopUpdateResources(); m_UpdateStarted = false; }

Type guard

bool CanCallStopUpdate => m_UpdateStarted && !m_UpdateFinished;

Try / catch

try { resourceComponent.StopUpdateResources(); }
catch (GameFrameworkException ex) when (ex.Message.Contains("no resource group"))
{
    // no update running; treat as no-op
}

Prevention

When it happens

Trigger: Calling StopUpdateResources() when no UpdateResources call is currently in progress — before any update started, or after the group already finished updating.

Common situations: Defensive 'stop everything' teardown called when updates already completed; user hits cancel after downloads finished; double-invoking StopUpdateResources.

Understand the failure class

Background: "Invalid state transition" errors: "status must be X, actually Y", "already rejected/charging/uninstalled", "cannot ... while running" — what they mean when a library rejects your call — this error's family across 31 libraries.

Related errors


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

Appendix: source

Thrown at GameFramework/Resource/ResourceManager.ResourceUpdater.cs:474

            {
                if (m_DownloadManager == null)
                {
                    throw new GameFrameworkException("You must set download manager first.");
                }

                if (!m_CheckResourcesComplete)
                {
                    throw new GameFrameworkException("You must check resources complete first.");
                }

                if (m_ApplyingResourcePackStream != null)
                {
                    throw new GameFrameworkException(Utility.Text.Format("There is already a resource pack '{0}' being applied.", m_ApplyingResourcePackPath));
                }

                if (m_UpdatingResourceGroup == null)
                {
                    throw new GameFrameworkException("There is no resource group being updated.");
                }

                m_UpdateWaitingInfo.Clear();
                m_UpdatingResourceGroup = null;
            }

            /// <summary>
            /// 更新指定资源。
            /// </summary>
            /// <param name="resourceName">要更新的资源名称。</param>
            public void UpdateResource(ResourceName resourceName)
            {
                if (m_DownloadManager == null)
                {
                    throw new GameFrameworkException("You must set download manager first.");
                }

                if (!m_CheckResourcesComplete)

View on GitHub (pinned to d0c010b051)