{"record":{"id":"fe38aefb03b2ba46","repo":"apache/beam","slug":"no-proto-encoding-for-paneinfocoder-always-part-of","errorCode":null,"errorMessage":"No proto encoding for PaneInfoCoder, always part of WindowedValue codec","messagePattern":"No proto encoding for PaneInfoCoder, always part of WindowedValue codec","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"sdks/typescript/src/apache_beam/coders/required_coders.ts","lineNumber":642,"sourceCode":"\n    switch (encodingNibble) {\n      case PaneInfoEncoding.NO_INDEX:\n        // the header byte contains all the info\n        return;\n      case PaneInfoEncoding.ONE_INDEX:\n        writer.int32(value.index);\n        return;\n      case PaneInfoEncoding.TWO_INDICES:\n        writer.int32(value.index);\n        writer.int32(value.onTimeIndex);\n        return;\n      default:\n        throw new Error(\"Unknown PaneInfo encoding: \" + encodingNibble);\n    }\n  }\n\n  toProto(pipelineContext: ProtoContext): runnerApi.Coder {\n    throw new Error(\n      \"No proto encoding for PaneInfoCoder, always part of WindowedValue codec\",\n    );\n  }\n}\n\nrequireForSerialization(`${packageName}/coders/required_coders`, exports);\n","sourceCodeStart":624,"sourceCodeEnd":649,"githubUrl":"https://github.com/apache/beam/blob/12126d8942aaf848030c478b4c6a28c6af861c66/sdks/typescript/src/apache_beam/coders/required_coders.ts#L624-L649","documentation":"_maybe_use_transform_service raises ValueError when Beam is asked to launch a local expansion/transform service but neither a `java` nor a `docker` executable can be found on the system (after checking JAVA_HOME and PATH). Beam has no way to start the required JVM-based service, so pipeline expansion cannot proceed locally.","triggerScenarios":"Running a pipeline with external/managed transforms that requires a local expansion service (no expansion_service address given) on a machine without Java or Docker installed or not on PATH.","commonSituations":"Minimal Docker/CI images without a JRE; Windows/macOS dev machines where Java is installed but not on PATH; using slim apache-beam install on a system without docker.","solutions":["Install a JDK/JRE and ensure `java` is on PATH (or set JAVA_HOME).","Install Docker and ensure `docker` is on PATH so Beam can use a containerized expansion service.","Point expansion_service at an already-running remote expansion service so no local Java/Docker is needed."],"exampleFix":"// before\n# pipeline needs expansion service, host has no java/docker\n// after\n# sudo apt-get install -y default-jre  (or) use ExternalTransform(..., expansion_service='host:port')","handlingStrategy":"fallback","validationCode":"import shutil, os\njava = shutil.which('java') or (os.path.join(os.environ.get('JAVA_HOME',''), 'bin/java') if os.path.exists(os.path.join(os.environ.get('JAVA_HOME',''), 'bin/java')) else None)\ndocker = shutil.which('docker')\nassert java or docker, 'install Java or Docker before running local expansion'","typeGuard":"def can_launch_expansion_service() -> bool:\n    import shutil, os\n    return bool(shutil.which('java') or shutil.which('docker') or (os.environ.get('JAVA_HOME') and os.path.exists(os.path.join(os.environ['JAVA_HOME'], 'bin/java'))))","tryCatchPattern":"try:\n    p | ManagedRead(source='kafka')\nexcept ValueError as e:\n    if 'neither Java nor Docker' in str(e):\n        rerun_with_remote_expansion_service()","preventionTips":["Verify `java -version` or `docker --version` works in your runtime image","In CI, install a JRE in the base image or run a standalone expansion service","Set JAVA_HOME correctly on Windows/macOS","Use a remote expansion_service for environments without JVM tooling"],"tags":["python","apache-beam","environment","java","docker","expansion-service"],"backgroundTag":"missing-dependency","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"}