{"record":{"id":"45fff144328cd8f0","repo":"apache/beam","slug":"schema-missing-on-rowtype","errorCode":null,"errorMessage":"Schema missing on RowType","messagePattern":"Schema missing on RowType","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"sdks/typescript/src/apache_beam/coders/row_coder.ts","lineNumber":286,"sourceCode":"              `Encountered an Atomic type that is not currently supported by RowCoder: ${atomicType}`,\n            );\n        }\n        break;\n      case \"arrayType\":\n        if (typeInfo.arrayType.elementType !== undefined) {\n          return new IterableCoder(\n            this.getCoderFromType(typeInfo.arrayType.elementType),\n          );\n        } else {\n          throw new Error(\"ElementType missing on ArrayType\");\n        }\n      // case \"iterableType\":\n      // case \"mapType\":\n      case \"rowType\":\n        if (typeInfo.rowType.schema !== undefined) {\n          return RowCoder.fromSchema(typeInfo.rowType.schema);\n        } else {\n          throw new Error(\"Schema missing on RowType\");\n        }\n        break;\n      case \"logicalType\":\n        const logicalTypeInfo = logicalTypes.get(typeInfo.logicalType.urn);\n        if (logicalTypeInfo !== undefined) {\n          const reprCoder = this.getCoderFromType(\n            typeInfo.logicalType.representation!,\n          );\n          return {\n            encode: (element: any, writer: Writer, context: Context) =>\n              reprCoder.encode(\n                logicalTypeInfo.toRepr(element),\n                writer,\n                context,\n              ),\n            decode: (reader: Reader, context: Context) =>\n              logicalTypeInfo.fromRepr(reprCoder.decode(reader, context)),\n            toProto: (pipelineContext: ProtoContext) => {","sourceCodeStart":268,"sourceCodeEnd":304,"githubUrl":"https://github.com/apache/beam/blob/12126d8942aaf848030c478b4c6a28c6af861c66/sdks/typescript/src/apache_beam/coders/row_coder.ts#L268-L304","documentation":"RowCoder encountered a rowType schema field whose schema property is undefined. A row-typed field is encoded by recursively constructing a nested RowCoder from its schema, so the throw fires when the rowType input lacks the schema payload it requires (malformed or incompletely populated schema proto).","triggerScenarios":"Thrown at sdks/typescript/src/apache_beam/coders/row_coder.ts:286 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Set rowType.schema on every row-typed field before passing the schema to RowCoder (or use RowCoder.fromSchema with a fully specified Schema proto).","If the schema came from JSON inference, verify the nested row values were plain objects so inferSchemaOfJSON could derive a nested schema.","Log typeInfo.rowType at the throw site to identify which field is missing its schema."],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"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"}