{"record":{"id":"3d9499cc4cf61d90","repo":"halo-dev/halo","slug":"plugin-not-found","errorCode":null,"errorMessage":"Plugin [{}] not found.","messagePattern":"Plugin \\[(.+?)\\] not found\\.","errorType":"http","errorClass":"NotFoundException","httpStatus":404,"severity":"error","filePath":"application/src/main/java/run/halo/app/plugin/resources/ReverseProxyRouterFunctionFactory.java","lineNumber":171,"sourceCode":"        } else {\n            String routePath = buildRoutePath(pluginName, rule);\n            PathContainer pathContainer = PathPatternParser.defaultInstance\n                    .parse(routePath)\n                    .extractPathWithinPattern(PathContainer.parsePath(request.path()));\n            filename = pathContainer.value();\n        }\n\n        String filePath = PathUtils.combinePath(directory, filename);\n        return getResourceLoader(pluginName).getResource(filePath);\n    }\n\n    private ResourceLoader getResourceLoader(String pluginName) {\n        if (PluginConst.SYSTEM_PLUGIN_NAME.equals(pluginName)) {\n            return applicationContext;\n        }\n        DefaultResourceLoader resourceLoader = BundleResourceUtils.getResourceLoader(pluginManager, pluginName);\n        if (resourceLoader == null) {\n            throw new NotFoundException(\"Plugin [\" + pluginName + \"] not found.\");\n        }\n        return resourceLoader;\n    }\n}\n","sourceCodeStart":153,"sourceCodeEnd":176,"githubUrl":"https://github.com/halo-dev/halo/blob/d2f5165f9c8f055ffcb3fa9c3f4032821a7b68c8/application/src/main/java/run/halo/app/plugin/resources/ReverseProxyRouterFunctionFactory.java#L153-L176","documentation":"Error \"Plugin [{}] not found.\" thrown in halo-dev/halo.","triggerScenarios":"Thrown at application/src/main/java/run/halo/app/plugin/resources/ReverseProxyRouterFunctionFactory.java:171 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Confirm the plugin named in the error is installed and started; the reverse proxy route targets a running plugin.","Reload or reinstall the plugin so its routes are registered.","Check for a stale reverse-proxy configuration referencing a plugin that was uninstalled or renamed."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"d2f5165f9c8f055ffcb3fa9c3f4032821a7b68c8","analyzedAt":"2026-08-14T00:18:38.915Z","schemaVersion":2},"datasetVersion":"2026-08-14T05:17:29.042Z"}