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
- Track whether an update is running (via ResourceUpdateStart/ResourceUpdateAllComplete events) and only call StopUpdateResources in that window.
- Treat this as a non-error in your flow: check your own started/stopped state before calling, or catch and ignore.
- 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
- Flip a started flag on ResourceUpdateStart and clear it on ResourceUpdateAllComplete
- Debounce cancel clicks to avoid duplicate stop calls
- Treat redundant stop attempts as benign and suppress them with your own state
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
- Asset target ' ' dependency asset reference count is…
- Asset target ' ' reference count is ' ' larger than 0.
- Can not find resource group
- Name is invalid.
- Resource infos is invalid.
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)