{"record":{"id":"3d8dbffad0b090c1","repo":"apache/beam","slug":"row-outputreceiver-unsupported-in-s","errorCode":null,"errorMessage":"Row OutputReceiver unsupported in %s","messagePattern":"Row OutputReceiver unsupported in (.+?)","errorType":"exception","errorClass":"UnsupportedOperationException","httpStatus":null,"severity":"error","filePath":"sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/reflect/DoFnInvoker.java","lineNumber":402,"sourceCode":"      throw new UnsupportedOperationException(\n          String.format(\"TimeDomain unsupported in %s\", getErrorContext()));\n    }\n\n    @Override\n    public OutputReceiver<OutputT> outputReceiver(DoFn<InputT, OutputT> doFn) {\n      throw new UnsupportedOperationException(\n          String.format(\"OutputReceiver unsupported in %s\", getErrorContext()));\n    }\n\n    @Override\n    public OutputReceiver<Row> outputRowReceiver(DoFn<InputT, OutputT> doFn) {\n      throw new UnsupportedOperationException(\n          String.format(\"Row OutputReceiver unsupported in %s\", getErrorContext()));\n    }\n\n    @Override\n    public MultiOutputReceiver taggedOutputReceiver(DoFn<InputT, OutputT> doFn) {\n      throw new UnsupportedOperationException(\n          String.format(\"MultiOutputReceiver unsupported in %s\", getErrorContext()));\n    }\n\n    @Override\n    public Object restriction() {\n      throw new UnsupportedOperationException(\n          String.format(\"Restriction unsupported in %s\", getErrorContext()));\n    }\n\n    @Override\n    public BoundedWindow window() {\n      throw new UnsupportedOperationException(\n          String.format(\"BoundedWindow unsupported in %s\", getErrorContext()));\n    }\n\n    @Override\n    public PaneInfo paneInfo(DoFn<InputT, OutputT> doFn) {\n      throw new UnsupportedOperationException(","sourceCodeStart":384,"sourceCodeEnd":420,"githubUrl":"https://github.com/apache/beam/blob/12126d8942aaf848030c478b4c6a28c6af861c66/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/reflect/DoFnInvoker.java#L384-L420","documentation":"outputRowReceiver() throws UnsupportedOperationException because this invoker implementation has no Row output receiver bound. It exists for DoFns producing schema Row outputs; when unsupported, the invoker cannot deliver Row-typed outputs. The message's error context says which invoker it was.","triggerScenarios":"Calling outputRowReceiver(DoFn) on a base DelegatingDoFnInvoker or an invoker constructed without a row output receiver factory; schema-aware DoFn code emitting Row outputs through an invoker without row support.","commonSituations":"Pipeline steps that convert DoFn output to Beam Rows (schema pipelines) run through a custom or stub invoker; test harness that only wires generic output receivers.","solutions":["Bind a row output receiver factory when constructing the invoker","Use the standard runner path where schema output receivers are wired automatically","If the DoFn does not emit Rows, avoid calling outputRowReceiver; use outputReceiver instead","Verify schema/Row output configuration on the PTransform"],"exampleFix":"// before\nOutputReceiver<Row> rr = invoker.outputRowReceiver(doFn); // throws\n// after\nOutputReceiver<Row> rr = rowReceiverFactory != null\n    ? invoker.outputRowReceiver(doFn)\n    : adaptToRowReceiver(invoker.outputReceiver(doFn));","handlingStrategy":"fallback","validationCode":"boolean schemaOutput = doFn instanceof DoFnWithRowOutput;","typeGuard":"null","tryCatchPattern":"try { rr = invoker.outputRowReceiver(doFn); } catch (UnsupportedOperationException e) { rr = adapt(invoker.outputReceiver(doFn)); }","preventionTips":["Only call outputRowReceiver for Row-producing schema DoFns","Bind a row receiver factory in custom invokers","Verify schema pipeline configuration"],"tags":["apache-beam","java","unsupported-operation","schema"],"backgroundTag":"unsupported-operation","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"}