{"record":{"id":"49760b09f2fdd2ff","repo":"apache/seatunnel","slug":"multitablesinkfactory-only-support-multitablefacto","errorCode":null,"errorMessage":"MultiTableSinkFactory only support MultiTableFactoryContext","messagePattern":"MultiTableSinkFactory only support MultiTableFactoryContext","errorType":"exception","errorClass":"UnsupportedOperationException","httpStatus":null,"severity":"error","filePath":"seatunnel-api/src/main/java/org/apache/seatunnel/api/sink/multitablesink/MultiTableSinkFactory.java","lineNumber":41,"sourceCode":"import org.apache.seatunnel.api.table.factory.MultiTableFactoryContext;\nimport org.apache.seatunnel.api.table.factory.TableSinkFactory;\nimport org.apache.seatunnel.api.table.factory.TableSinkFactoryContext;\n\nimport com.google.auto.service.AutoService;\n\n@AutoService(Factory.class)\npublic class MultiTableSinkFactory implements TableSinkFactory {\n    @Override\n    public String factoryIdentifier() {\n        return \"MultiTableSink\";\n    }\n\n    @Override\n    public TableSink createSink(TableSinkFactoryContext context) {\n        if (context instanceof MultiTableFactoryContext) {\n            return () -> new MultiTableSink((MultiTableFactoryContext) context);\n        } else {\n            throw new UnsupportedOperationException(\n                    \"MultiTableSinkFactory only support MultiTableFactoryContext\");\n        }\n    }\n\n    @Override\n    public OptionRule optionRule() {\n        return OptionRule.builder().build();\n    }\n}\n","sourceCodeStart":23,"sourceCodeEnd":51,"githubUrl":"https://github.com/apache/seatunnel/blob/cf67b549a7a6c35fa0beb12d83c62892427ea919/seatunnel-api/src/main/java/org/apache/seatunnel/api/sink/multitablesink/MultiTableSinkFactory.java#L23-L51","documentation":"Guard in MultiTableSinkFactory.createSink: this factory can only be invoked with a MultiTableFactoryContext carrying per-table sink contexts; a plain TableSinkFactoryContext (single-table job or wrong factory routing) reaches it and is rejected.","triggerScenarios":"Thrown at seatunnel-api/src/main/java/org/apache/seatunnel/api/sink/multitablesink/MultiTableSinkFactory.java:41 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Ensure the job defines multiple tables so the engine builds a MultiTableFactoryContext","Check factory selection: identifier 'MultiTableSink' should only resolve for multi-table contexts","When embedding programmatically, construct a MultiTableFactoryContext instead of a plain TableSinkFactoryContext"],"exampleFix":null,"handlingStrategy":"type-guard","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"cf67b549a7a6c35fa0beb12d83c62892427ea919","analyzedAt":"2026-09-10T21:44:55.265Z","contentChangedAt":"2026-09-10T21:44:55.265Z","schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}