{"record":{"id":"6c00bab071aeb9b6","repo":"apache/dolphinscheduler","slug":"110004","errorCode":"110004","errorMessage":"query plugin detail result is null","messagePattern":"query plugin detail result is null","errorType":"error_code","errorClass":"ServiceException","httpStatus":null,"severity":"error","filePath":"dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/UiPluginServiceImpl.java","lineNumber":78,"sourceCode":"        if (!pluginType.getHasUi()) {\n            log.warn(\"Plugin does not have UI.\");\n            throw new ServiceException(Status.PLUGIN_NOT_A_UI_COMPONENT);\n        }\n        List<PluginDefine> pluginDefines = pluginDefineMapper.queryByPluginType(pluginType.getDesc());\n\n        if (CollectionUtils.isEmpty(pluginDefines)) {\n            log.warn(\"Query plugins result is null, check status of plugins.\");\n            throw new ServiceException(Status.QUERY_PLUGINS_RESULT_IS_NULL);\n        }\n        return pluginDefines;\n    }\n\n    @Override\n    public PluginDefine queryUiPluginDetailById(int id) {\n        PluginDefine pluginDefine = pluginDefineMapper.queryDetailById(id);\n        if (null == pluginDefine) {\n            log.warn(\"Query plugins result is empty, pluginId:{}.\", id);\n            throw new ServiceException(Status.QUERY_PLUGIN_DETAIL_RESULT_IS_NULL);\n        }\n        return pluginDefine;\n    }\n\n    @Override\n    public ProductInfoDto queryProductInfo() {\n        ProductInfoDto result = new ProductInfoDto();\n        result.setVersion(dsVersion);\n        return result;\n    }\n\n}\n","sourceCodeStart":60,"sourceCodeEnd":91,"githubUrl":"https://github.com/apache/dolphinscheduler/blob/02eac45a1b6676e639fcbfb4be2243de5771b05d/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/UiPluginServiceImpl.java#L60-L91","documentation":"Thrown in UiPluginServiceImpl.queryUiPluginDetailById when pluginDefineMapper.queryDetailById(id) returns null: no row exists in t_ds_plugin_define for the requested plugin id, so the UI plugin detail lookup is a sentinel guard against a missing/expired plugin definition (e.g. plugin removed after registration or a stale id from the client).","triggerScenarios":"Thrown at dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/UiPluginServiceImpl.java:78 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Verify the plugin id passed to the API exists; refresh the UI plugin list and use a current id","Check t_ds_plugin_define for rows of the expected plugin type; if empty, confirm the plugin jar is installed and the server restarted so it registers","If plugins were upgraded, re-sync the plugin definitions in the database before retrying"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"02eac45a1b6676e639fcbfb4be2243de5771b05d","analyzedAt":"2026-09-06T17:43:00.555Z","contentChangedAt":"2026-09-06T17:43:00.555Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}