{"record":{"id":"b585774547e83f6a","repo":"apache/beam","slug":"elementtype-missing-on-arraytype","errorCode":null,"errorMessage":"ElementType missing on ArrayType","messagePattern":"ElementType missing on ArrayType","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"sdks/typescript/src/apache_beam/coders/row_coder.ts","lineNumber":278,"sourceCode":"          // case AtomicType.FLOAT:\n          // case AtomicType.DOUBLE:\n          case AtomicType.STRING:\n            return new StrUtf8Coder();\n          case AtomicType.BOOLEAN:\n            return new BoolCoder();\n          default:\n            throw new Error(\n              `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) =>","sourceCodeStart":260,"sourceCodeEnd":296,"githubUrl":"https://github.com/apache/beam/blob/12126d8942aaf848030c478b4c6a28c6af861c66/sdks/typescript/src/apache_beam/coders/row_coder.ts#L260-L296","documentation":"RowCoder was asked to build a coder for a schema field of type arrayType, but the type information carried no elementType. The element type is the only input needed to construct the IterableCoder for an array field, so a missing elementType means the schema proto was built incorrectly or truncated upstream.","triggerScenarios":"Thrown at sdks/typescript/src/apache_beam/coders/row_coder.ts:278 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Ensure the schema passed to RowCoder (e.g. from RowCoder.inferSchemaOfJSON or a Schema proto) sets arrayType.elementType for every array field.","If building the type info by hand, populate the elementType oneof arm of the arrayType before constructing the coder.","Inspect the offending field with JSON.stringify(typeInfo) to confirm which array field is missing its element type."],"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"}