{"record":{"id":"667b5127bdb4e0b8","repo":"EllanJiang/GameFramework","slug":"can-not-load-dependency-asset-0-when-load-asset-1","errorCode":null,"errorMessage":"Can not load dependency asset '{0}' when load asset '{1}'.","messagePattern":"Can not load dependency asset '(.+?)' when load asset '(.+?)'\\.","errorType":"exception","errorClass":"GameFrameworkException","httpStatus":null,"severity":"error","filePath":"GameFramework/Resource/ResourceManager.ResourceLoader.cs","lineNumber":346,"sourceCode":"                        return;\n                    }\n\n                    throw new GameFrameworkException(errorMessage);\n                }\n\n                LoadAssetTask mainTask = LoadAssetTask.Create(assetName, assetType, priority, resourceInfo, dependencyAssetNames, loadAssetCallbacks, userData);\n                foreach (string dependencyAssetName in dependencyAssetNames)\n                {\n                    if (!LoadDependencyAsset(dependencyAssetName, priority, mainTask, userData))\n                    {\n                        string errorMessage = Utility.Text.Format(\"Can not load dependency asset '{0}' when load asset '{1}'.\", dependencyAssetName, assetName);\n                        if (loadAssetCallbacks.LoadAssetFailureCallback != null)\n                        {\n                            loadAssetCallbacks.LoadAssetFailureCallback(assetName, LoadResourceStatus.DependencyError, errorMessage, userData);\n                            return;\n                        }\n\n                        throw new GameFrameworkException(errorMessage);\n                    }\n                }\n\n                m_TaskPool.AddTask(mainTask);\n                if (!resourceInfo.Ready)\n                {\n                    m_ResourceManager.UpdateResource(resourceInfo.ResourceName);\n                }\n            }\n\n            /// <summary>\n            /// 卸载资源。\n            /// </summary>\n            /// <param name=\"asset\">要卸载的资源。</param>\n            public void UnloadAsset(object asset)\n            {\n                m_AssetPool.Unspawn(asset);\n            }","sourceCodeStart":328,"sourceCodeEnd":364,"githubUrl":"https://github.com/EllanJiang/GameFramework/blob/d0c010b05167c58e92350449d04864a91ca13fd2/GameFramework/Resource/ResourceManager.ResourceLoader.cs#L328-L364","documentation":"While queueing LoadAsset, one of the asset's dependency assets failed to load (LoadDependencyAsset returned false) and no failure callback was set, so the formatted error is thrown. The main asset cannot be loaded without its dependencies.","triggerScenarios":"LoadAsset is called, the main task is created, but a dependency asset name has no valid resource info or is a binary/missing resource, with LoadAssetFailureCallback null.","commonSituations":"Incomplete resource package missing dependency assets, stale resource version after a content update, editor-vs-build dependency mismatch, or manually edited asset names.","solutions":["Rebuild/re-download resource packages so all dependency assets are present.","Check the dependency error message to identify the missing dependency asset.","Verify resource version currency (check version / update resources before loading).","Provide a failure callback to receive LoadResourceStatus.DependencyError instead of an exception."],"exampleFix":"// before\nresourceComponent.LoadAsset(name, type, null);\n// after\nresourceComponent.LoadAsset(name, type, new LoadAssetCallbacks(onSuccess,\n    (n, status, msg, ud) => Log.Error($\"Dependency load failed for {n}: {msg}\")));","handlingStrategy":"try-catch","validationCode":"// Precheck dependencies are in the catalog\nforeach (var dep in dependencyNames)\n    if (!resourceComponent.HasAsset(dep)) Log.Warning(\"Missing dependency: \" + dep);","typeGuard":null,"tryCatchPattern":"try { resourceComponent.LoadAsset(name, type, new LoadAssetCallbacks(onSuccess,\n    (n, s, m, u) => { if (s == LoadResourceStatus.DependencyError) Log.Error($\"Missing dependency: {m}\"); })); }\ncatch (GameFrameworkException ex) { Log.Error(ex.Message); }","preventionTips":["Keep resource packages complete and versions in sync","Update resources before loading dependent assets","Always register failure callbacks"],"tags":["gameframework","resource-management","dependency-assets","asset-loading"],"backgroundTag":"missing-dependency","analyzedSha":"d0c010b05167c58e92350449d04864a91ca13fd2","analyzedAt":"2026-09-15T13:37:15.352Z","contentChangedAt":"2026-09-15T13:37:15.352Z","schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}