{"record":{"id":"656478e8d9e3cd11","repo":"apache/dolphinscheduler","slug":"110001","errorCode":"110001","errorMessage":"query plugin error, this plugin has no UI component","messagePattern":"query plugin error, this plugin has no UI component","errorType":"error_code","errorClass":"ServiceException","httpStatus":null,"severity":"error","filePath":"dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/UiPluginServiceImpl.java","lineNumber":62,"sourceCode":"\n    @Autowired\n    PluginDefineMapper pluginDefineMapper;\n\n    @Autowired\n    private DsVersionDao dsVersionDao;\n\n    private String dsVersion;\n\n    @PostConstruct\n    private void init() {\n        dsVersion = dsVersionDao.selectVersion().map(DsVersion::getVersion).orElse(\"unknown\");\n    }\n\n    @Override\n    public List<PluginDefine> queryUiPluginsByType(PluginType pluginType) {\n        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;","sourceCodeStart":44,"sourceCodeEnd":80,"githubUrl":"https://github.com/apache/dolphinscheduler/blob/02eac45a1b6676e639fcbfb4be2243de5771b05d/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/UiPluginServiceImpl.java#L44-L80","documentation":"Thrown in UiPluginServiceImpl.queryUiPluginsByType when the requested PluginType is not a UI-capable plugin (pluginType.getHasUi() is false). The caller asked for UI components of a plugin type that has none (e.g., server-only plugins); it is a generic guard against unsupported plugin types.","triggerScenarios":"Thrown at dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/UiPluginServiceImpl.java:62 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Request only plugin types that have UI components (e.g., alert/datasource/task types with forms).","Fix the client code that maps UI pages to plugin types.","Check PluginType.getHasUi() before calling the endpoint."],"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-14T05:17:10.506Z"}