{"record":{"id":"fd113268857df0a6","repo":"EllanJiang/GameFramework","slug":"file-system-manager-is-invalid","errorCode":null,"errorMessage":"File system manager is invalid.","messagePattern":"File system manager is invalid\\.","errorType":"exception","errorClass":"GameFrameworkException","httpStatus":null,"severity":"error","filePath":"GameFramework/Resource/ResourceManager.cs","lineNumber":998,"sourceCode":"        public void SetObjectPoolManager(IObjectPoolManager objectPoolManager)\n        {\n            if (objectPoolManager == null)\n            {\n                throw new GameFrameworkException(\"Object pool manager is invalid.\");\n            }\n\n            m_ResourceLoader.SetObjectPoolManager(objectPoolManager);\n        }\n\n        /// <summary>\n        /// 设置文件系统管理器。\n        /// </summary>\n        /// <param name=\"fileSystemManager\">文件系统管理器。</param>\n        public void SetFileSystemManager(IFileSystemManager fileSystemManager)\n        {\n            if (fileSystemManager == null)\n            {\n                throw new GameFrameworkException(\"File system manager is invalid.\");\n            }\n\n            m_FileSystemManager = fileSystemManager;\n        }\n\n        /// <summary>\n        /// 设置下载管理器。\n        /// </summary>\n        /// <param name=\"downloadManager\">下载管理器。</param>\n        public void SetDownloadManager(IDownloadManager downloadManager)\n        {\n            if (downloadManager == null)\n            {\n                throw new GameFrameworkException(\"Download manager is invalid.\");\n            }\n\n            if (m_VersionListProcessor != null)\n            {","sourceCodeStart":980,"sourceCodeEnd":1016,"githubUrl":"https://github.com/EllanJiang/GameFramework/blob/d0c010b05167c58e92350449d04864a91ca13fd2/GameFramework/Resource/ResourceManager.cs#L980-L1016","documentation":"Thrown by ResourceManager.SetFileSystemManager when the IFileSystemManager argument is null. The file system manager is required for read/write path resource access; the library validates the argument immediately to avoid null references during resource operations.","triggerScenarios":"Calling SetFileSystemManager(null), or passing a variable that is null because the FileSystem module was not created or a GetComponent returned null.","commonSituations":"FileSystem module never registered with GameFrameworkEntry; Unity component setup order issue; DI wiring failed silently.","solutions":["Pass a valid IFileSystemManager, e.g. GameFrameworkEntry.GetModule<FileSystemManager>()","Ensure the FileSystem module is created before resource initialization","Add a null check before calling and log a configuration error"],"exampleFix":"// before\nresourceManager.SetFileSystemManager(fileSystemManager); // may be null\n// after\nvar fsm = GameFrameworkEntry.GetModule<FileSystemManager>();\nresourceManager.SetFileSystemManager(fsm ?? throw new InvalidOperationException(\"FileSystemManager not initialized\"));","handlingStrategy":"validation","validationCode":"if (fileSystemManager == null) throw new InvalidOperationException(\"fileSystemManager must be created before SetFileSystemManager\");","typeGuard":"bool IsValid(IFileSystemManager m) => m != null;","tryCatchPattern":"try { resourceManager.SetFileSystemManager(fileSystemManager); } catch (GameFrameworkException ex) { Debug.LogError($\"Resource init failed: {ex.Message}\"); }","preventionTips":["Create the FileSystem module via GameFrameworkEntry before resource setup","Null-check GetModule results","Keep initialization in one ordered bootstrap method"],"tags":["null-argument","resource","gameframework","initialization"],"backgroundTag":"null-argument","analyzedSha":"d0c010b05167c58e92350449d04864a91ca13fd2","analyzedAt":"2026-09-15T13:37:15.352Z","contentChangedAt":"2026-09-15T13:37:15.352Z","schemaVersion":2},"datasetVersion":"2026-09-15T23:17:13.987Z"}