{"record":{"id":"bcf5ba4aabad1a6e","repo":"apache/beam","slug":"unknown-encoding","errorCode":null,"errorMessage":"Unknown encoding ","messagePattern":"Unknown encoding ","errorType":"exception","errorClass":"CoderException","httpStatus":null,"severity":"error","filePath":"sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/windowing/PaneInfo.java","lineNumber":390,"sourceCode":"    public void encode(PaneInfo value, final OutputStream outStream)\n        throws CoderException, IOException {\n      Encoding encoding = chooseEncoding(value);\n      byte elementMetadata = value.containsElementMetadata ? ELEMENT_METADATA_MASK : 0x00;\n      switch (chooseEncoding(value)) {\n        case FIRST:\n          outStream.write(value.encodedByte | elementMetadata);\n          break;\n        case ONE_INDEX:\n          outStream.write(value.encodedByte | encoding.tag | elementMetadata);\n          VarInt.encode(value.index, outStream);\n          break;\n        case TWO_INDICES:\n          outStream.write(value.encodedByte | encoding.tag | elementMetadata);\n          VarInt.encode(value.index, outStream);\n          VarInt.encode(value.nonSpeculativeIndex, outStream);\n          break;\n        default:\n          throw new CoderException(\"Unknown encoding \" + encoding);\n      }\n    }\n\n    @Override\n    protected long getEncodedElementByteSize(PaneInfo value) throws Exception {\n      Encoding encoding = chooseEncoding(value);\n      switch (encoding) {\n        case FIRST:\n          return 1;\n        case ONE_INDEX:\n          return 1L + VarInt.getLength(value.index);\n        case TWO_INDICES:\n          return 1L + VarInt.getLength(value.index) + VarInt.getLength(value.nonSpeculativeIndex);\n        default:\n          throw new CoderException(\"Unknown encoding \" + encoding);\n      }\n    }\n","sourceCodeStart":372,"sourceCodeEnd":408,"githubUrl":"https://github.com/apache/beam/blob/12126d8942aaf848030c478b4c6a28c6af861c66/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/windowing/PaneInfo.java#L372-L408","documentation":"PaneInfoCoder.encode switches over the Encoding chosen for a PaneInfo value; if chooseEncoding ever returns an encoding without a write case, the default branch throws CoderException(\"Unknown encoding \"). This is an internal exhaustiveness guard rather than a user-input error.","triggerScenarios":"A new PaneInfo.Encoding enum constant added in a newer Beam version being encoded by an older switch statement (mixed Beam versions in classpath or runner harness), or programmatic misuse passing a null/unsupported encoding into the coder path.","commonSituations":"Runner harness and user code on mismatched Beam versions (e.g. Dataflow/Flink worker images older than the SDK); shading/dependency conflicts leaving two Beam versions on the classpath.","solutions":["Align the Apache Beam SDK version of user code and the runner/worker harness (e.g. set worker image / --sdkLocation to the same version).","Run mvn dependency:tree (or equivalent) to detect and exclude duplicate/mixed beam-sdks-java-core versions on the classpath.","Upgrade all components to a release where Encoding and its coder switch are consistent.","Catch CoderException and log the encoding value to confirm the version-mismatch hypothesis before redeploying."],"exampleFix":"// before (pom.xml)\n<dependency><groupId>org.apache.beam</groupId><artifactId>beam-sdks-java-core</artifactId><version>2.40.0</version></dependency>\n// runner worker image: 2.50.0\n// after\n<dependency><groupId>org.apache.beam</groupId><artifactId>beam-sdks-java-core</artifactId><version>2.50.0</version></dependency>\n// runner worker image: 2.50.0 (aligned)","handlingStrategy":"try-catch","validationCode":"// check for version skew before deploying:\n// org.apache.beam.sdk.Pipeline: SDK version == runner harness version\nString sdk = Pipeline.class.getPackage().getImplementationVersion();\nassert sdk.equals(runnerWorkerVersion) : \"Beam version mismatch: \" + sdk + \" vs \" + runnerWorkerVersion;","typeGuard":null,"tryCatchPattern":"try {\n  coder.encode(value, out, Coder.Context.OUTER);\n} catch (CoderException e) {\n  LOG.error(\"PaneInfo encode failed (likely Beam version skew): {}\", e.getMessage(), e);\n  throw new IllegalStateException(\"Align SDK and runner Beam versions\", e);\n}","preventionTips":["Pin user code and runner/worker images to the same Beam release.","Run dependency:tree to eliminate duplicate beam-sdks-java-core jars.","Avoid shading Beam unless versions are fully controlled.","Smoke-test PaneInfoCoder round-trips after any Beam upgrade."],"tags":["java","apache-beam","coding","serialization","version-mismatch"],"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-14T16:17:12.679Z"}