{"record":{"id":"af7918fdd39dc539","repo":"PrismLibrary/Prism","slug":"resources-noretrievercanretrievemodule","errorCode":null,"errorMessage":"Resources.NoRetrieverCanRetrieveModule","messagePattern":"Resources\\.NoRetrieverCanRetrieveModule","errorType":"exception","errorClass":"ModuleTypeLoaderNotFoundException","httpStatus":null,"severity":"error","filePath":"src/Wpf/Prism.Wpf/Modularity/ModuleManager.cs","lineNumber":270,"sourceCode":"            }\n\n            int notReadyRequiredModuleCount =\n                requiredModules.Count(requiredModule => requiredModule.State != ModuleState.Initialized);\n\n            return notReadyRequiredModuleCount == 0;\n        }\n\n        private IModuleTypeLoader GetTypeLoaderForModule(IModuleInfo moduleInfo)\n        {\n            foreach (IModuleTypeLoader typeLoader in ModuleTypeLoaders)\n            {\n                if (typeLoader.CanLoadModuleType(moduleInfo))\n                {\n                    return typeLoader;\n                }\n            }\n\n            throw new ModuleTypeLoaderNotFoundException(moduleInfo.ModuleName, string.Format(CultureInfo.CurrentCulture, Resources.NoRetrieverCanRetrieveModule, moduleInfo.ModuleName), null);\n        }\n\n        private void InitializeModule(IModuleInfo moduleInfo)\n        {\n            if (moduleInfo.State == ModuleState.Initializing)\n            {\n                moduleInitializer.Initialize(moduleInfo);\n                moduleInfo.State = ModuleState.Initialized;\n                RaiseLoadModuleCompleted(moduleInfo, null);\n            }\n        }\n\n        #region Implementation of IDisposable\n\n        /// <summary>\n        /// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.\n        /// </summary>\n        /// <remarks>Calls <see cref=\"Dispose(bool)\"/></remarks>.","sourceCodeStart":252,"sourceCodeEnd":288,"githubUrl":"https://github.com/PrismLibrary/Prism/blob/358118cd640d9a22ff8cf21c8ad197fa038b7990/src/Wpf/Prism.Wpf/Modularity/ModuleManager.cs#L252-L288","documentation":"ModuleManager.GetTypeLoaderForModule iterates the registered IModuleTypeLoader instances and returns the first whose CanLoadModuleType(moduleInfo) is true. When no loader can handle the module's type, it throws ModuleTypeLoaderNotFoundException with Resources.NoRetrieverCanRetrieveModule. This indicates the ModuleInfo's Ref/Type is not supported by any configured loader (e.g., Xap loader missing in Silverlight scenarios, or an invalid Ref scheme).","triggerScenarios":"LoadModuleTypes -> moduleTypeLoader for a ModuleInfo whose Ref does not match any type loader's CanLoadModuleType (e.g., a file:// or http Ref with only the static reference loader registered, or null/invalid Ref).","commonSituations":"On-demand download scenarios where the expected remote loader is not registered with the module manager; ModuleInfo.Ref strings with unsupported URI schemes; custom module formats added to the catalog without registering a corresponding IModuleTypeLoader.","solutions":["Check ModuleInfo.Ref for each catalog entry and ensure it uses a scheme supported by the registered type loaders (typically an assembly path/URI).","Register additional IModuleTypeLoader instances with the ModuleManager if you need to load modules from remote/other sources.","Verify the module assembly file exists at the Ref path on disk/deployment.","Use ConfigurationModuleCatalog/DirectoryModuleCatalog defaults instead of hand-rolled Refs when possible."],"exampleFix":"// before\nnew ModuleInfo { ModuleName = \"Foo\", Ref = \"ftp://server/Foo.dll\", ModuleType = ... };\n// after\nnew ModuleInfo { ModuleName = \"Foo\", Ref = @\"file:@\"\"Modules\\\\Foo.dll\"\"\", ModuleType = ... };","handlingStrategy":"try-catch","validationCode":"foreach (var m in moduleCatalog.Modules)\n{\n    if (string.IsNullOrWhiteSpace(m.Ref) || !File.Exists(m.Ref))\n        logger.LogWarning(\"Module {0} has missing/invalid Ref: {1}\", m.ModuleName, m.Ref);\n}","typeGuard":null,"tryCatchPattern":"try\n{\n    moduleManager.Run();\n}\ncatch (ModuleTypeLoaderNotFoundException ex)\n{\n    logger.LogError(ex, \"No type loader can load module '{0}' — check Ref and registered loaders\", ex.Message);\n}","preventionTips":["Use Ref paths/schemes supported by the default type loaders","Register custom IModuleTypeLoader implementations for exotic sources","Verify module files exist at deployment time"],"tags":["wpf","modularity","type-loader","unsupported-source"],"backgroundTag":"incompatible-source-type","analyzedSha":"358118cd640d9a22ff8cf21c8ad197fa038b7990","analyzedAt":"2026-09-15T15:00:31.079Z","contentChangedAt":"2026-09-15T15:00:31.079Z","schemaVersion":2},"datasetVersion":"2026-09-16T04:17:20.429Z"}