{"record":{"id":"7279de2ba718f5d1","repo":"EllanJiang/GameFramework","slug":"can-not-find-dependency-resource","errorCode":null,"errorMessage":"Can not find dependency resource.","messagePattern":"Can not find dependency resource\\.","errorType":"exception","errorClass":"GameFrameworkException","httpStatus":null,"severity":"error","filePath":"GameFramework/Resource/ResourceManager.ResourceLoader.LoadResourceAgent.cs","lineNumber":345,"sourceCode":"                        assetObject = m_ResourceLoader.m_AssetPool.Spawn(m_Task.AssetName);\n                    }\n\n                    if (assetObject == null)\n                    {\n                        List<object> dependencyAssets = m_Task.GetDependencyAssets();\n                        assetObject = AssetObject.Create(m_Task.AssetName, e.Asset, dependencyAssets, m_Task.ResourceObject.Target, m_ResourceHelper, m_ResourceLoader);\n                        m_ResourceLoader.m_AssetPool.Register(assetObject, true);\n                        m_ResourceLoader.m_AssetToResourceMap.Add(e.Asset, m_Task.ResourceObject.Target);\n                        foreach (object dependencyAsset in dependencyAssets)\n                        {\n                            object dependencyResource = null;\n                            if (m_ResourceLoader.m_AssetToResourceMap.TryGetValue(dependencyAsset, out dependencyResource))\n                            {\n                                m_Task.ResourceObject.AddDependencyResource(dependencyResource);\n                            }\n                            else\n                            {\n                                throw new GameFrameworkException(\"Can not find dependency resource.\");\n                            }\n                        }\n                    }\n\n                    s_LoadingAssetNames.Remove(m_Task.AssetName);\n                    OnAssetObjectReady(assetObject);\n                }\n\n                private void OnLoadResourceAgentHelperError(object sender, LoadResourceAgentHelperErrorEventArgs e)\n                {\n                    OnError(e.Status, e.ErrorMessage);\n                }\n            }\n        }\n    }\n}\n","sourceCodeStart":327,"sourceCodeEnd":362,"githubUrl":"https://github.com/EllanJiang/GameFramework/blob/d0c010b05167c58e92350449d04864a91ca13fd2/GameFramework/Resource/ResourceManager.ResourceLoader.LoadResourceAgent.cs#L327-L362","documentation":"After an asset's underlying resource loads, the agent resolves each dependency asset via m_AssetToResourceMap to attach dependency ResourceObjects. If a dependency asset name has no mapped resource, the dependency graph is inconsistent and it throws, aborting the load.","triggerScenarios":"AssetObjectToResourceObject loop encounters a dependencyAsset absent from the asset-to-resource map — e.g. resource package metadata missing entries, dependency asset not included in the build, or loading an asset whose dependencies were stripped.","commonSituations":"Resource collection in ResourceEditor not rebuilt after adding dependencies; resources removed by 'remove unused' rules that were actually needed; loading assets from an older resource package against newer metadata; custom helper returning incomplete dependency lists.","solutions":["Rebuild the resource package so dependency metadata includes all required assets.","Check ResourceEditor settings/analysis rules so needed dependency assets are not excluded from the build.","Ensure the build-in / resource-version files shipped with the app match the AssetBundle content.","Verify the asset's dependency list is complete by re-analyzing it in the ResourceEditor."],"exampleFix":"// before\n// package built with dependency asset missing\nBuildAssetBundleOptions opts = BuildAssetBundleOptions.None;\n// after\n// rebuild resource package with ResourceEditor so all dependencies are collected\nresourceEditor.BuildResources(); // ensures m_AssetToResourceMap covers every dependencyAsset","handlingStrategy":"validation","validationCode":"if (!resourceComponent.HasAsset(dependencyAssetName))\n{\n    Debug.LogError($\"Dependency '{dependencyAssetName}' missing from resource package; rebuild resources.\");\n}","typeGuard":null,"tryCatchPattern":"try\n{\n    resourceComponent.LoadAsset(assetName, assetType, callback);\n}\ncatch (GameFrameworkException ex) when (ex.Message == \"Can not find dependency resource.\")\n{\n    Debug.LogError(\"Resource package metadata is missing a dependency; rebuild the resource package in ResourceEditor.\");\n}","preventionTips":["Rebuild the resource package after adding assets or changing dependencies.","Review ResourceEditor 'remove unused' analysis so required dependencies are kept.","Keep build-in resource/version metadata in sync with the AssetBundles shipped.","Re-analyze assets in ResourceEditor when dependency errors appear."],"tags":["gameframework","unity","dependency-graph","resource-not-found","build-mismatch"],"backgroundTag":"resource-not-found","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"}