{"record":{"id":"96442248ad7039e1","repo":"apache/beam","slug":"given-plugin-class-s-is-not-supported","errorCode":null,"errorMessage":"Given plugin class '%s' is not supported!","messagePattern":"Given plugin class '(.+?)' is not supported!","errorType":"exception","errorClass":"UnsupportedOperationException","httpStatus":null,"severity":"error","filePath":"sdks/java/io/cdap/src/main/java/org/apache/beam/sdk/io/cdap/MappingUtils.java","lineNumber":64,"sourceCode":"      return Plugin.createBatch(\n          pluginClass, SalesforceInputFormat.class, SalesforceInputFormatProvider.class);\n    } else if (pluginClass.equals(HubspotBatchSource.class)) {\n      return Plugin.createBatch(\n          pluginClass, HubspotInputFormat.class, HubspotInputFormatProvider.class);\n    } else if (pluginClass.equals(ZendeskBatchSource.class)) {\n      return Plugin.createBatch(\n          pluginClass, ZendeskInputFormat.class, ZendeskInputFormatProvider.class);\n    } else if (pluginClass.equals(HubspotBatchSink.class)) {\n      return Plugin.createBatch(\n          pluginClass, HubspotOutputFormat.class, SourceInputFormatProvider.class);\n    } else if (pluginClass.equals(SalesforceBatchSink.class)) {\n      return Plugin.createBatch(\n          pluginClass, SalesforceOutputFormat.class, SalesforceInputFormatProvider.class);\n    } else if (pluginClass.equals(ServiceNowSource.class)) {\n      return Plugin.createBatch(\n          pluginClass, ServiceNowInputFormat.class, SourceInputFormatProvider.class);\n    }\n    throw new UnsupportedOperationException(\n        String.format(\"Given plugin class '%s' is not supported!\", pluginClass.getName()));\n  }\n}\n","sourceCodeStart":46,"sourceCodeEnd":68,"githubUrl":"https://github.com/apache/beam/blob/12126d8942aaf848030c478b4c6a28c6af861c66/sdks/java/io/cdap/src/main/java/org/apache/beam/sdk/io/cdap/MappingUtils.java#L46-L68","documentation":"MappingUtils.getPluginByClass() maps a CDAP plugin class to the corresponding Hadoop Input/OutputFormat and format providers. If the plugin class is not in its known list (e.g. unsupported sink/source), it throws UnsupportedOperationException.","triggerScenarios":"Passing a pluginClass to CdapIO.read()/write() that MappingUtils does not recognize (not among the supported CDAP plugins like Salesforce, ServiceNow, etc.).","commonSituations":"Using a newer/custom CDAP plugin not yet mapped in the Beam CDAP connector; typo in plugin class; version mismatch between CDAP plugins and the connector.","solutions":["Use one of the plugin classes supported by MappingUtils.","Add a mapping branch for your plugin class (implement InputFormatProvider/OutputFormatProvider and corresponding format class).","Upgrade the Beam CDAP connector to a version supporting the plugin."],"exampleFix":"// before\nCdapIO.<String, String>read().withPluginClass(MyCustomSource.class)\n// after: use a supported plugin\nCdapIO.<String, String>read().withPluginClass(SalesforceSource.class)","handlingStrategy":"validation","validationCode":"List<Class<?>> supported = List.of(SalesforceSource.class, ServiceNowSource.class /* ... */);\nif (!supported.contains(pluginClass)) throw new IllegalArgumentException(\"Unsupported plugin class: \" + pluginClass.getName());","typeGuard":null,"tryCatchPattern":"try { pipeline.run().waitUntilFinish(); } catch (UnsupportedOperationException e) { if (e.getMessage().contains(\"not supported\")) { /* use supported plugin */ } throw e; }","preventionTips":["Only use plugin classes listed in MappingUtils.","Check the connector version's supported-plugin list.","Contribute mappings for new plugins."],"tags":["java","apache-beam","cdap","unsupported-plugin"],"backgroundTag":"unsupported-enum-value","analyzedSha":"12126d8942aaf848030c478b4c6a28c6af861c66","analyzedAt":"2026-09-13T01:50:10.254Z","contentChangedAt":"2026-09-13T01:50:10.254Z","schemaVersion":2},"datasetVersion":"2026-09-20T03:17:13.778Z"}