{"record":{"id":"90928fcc7c7e917d","repo":"apache/beam","slug":"unknown-paneinfo-encoding-encodingnibble","errorCode":null,"errorMessage":"Unknown PaneInfo encoding: \" + encodingNibble","messagePattern":"Unknown PaneInfo encoding: \" \\+ encodingNibble","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"sdks/typescript/src/apache_beam/coders/required_coders.ts","lineNumber":637,"sourceCode":"      (PaneInfoCoder.encodeTiming(value.timing) << 2);\n\n    const encodingNibble: PaneInfoEncoding =\n      PaneInfoCoder.chooseEncoding(value);\n    writeRawByte(low4 | (encodingNibble << 4), writer);\n\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":619,"sourceCodeEnd":649,"githubUrl":"https://github.com/apache/beam/blob/12126d8942aaf848030c478b4c6a28c6af861c66/sdks/typescript/src/apache_beam/coders/required_coders.ts#L619-L649","documentation":"ExpansionService (JavaJarExpansionService) __init__ raises ValueError when both extra_args and append_args are supplied. extra_args replaces the service's default arguments while append_args adds to them; giving both is contradictory and rejected. Pick a single mechanism for customizing service JVM arguments.","triggerScenarios":"JavaJarExpansionService(path_to_jar, extra_args=['--x'], append_args=['--y']) — both non-None and non-empty in one constructor call.","commonSituations":"Merging config from two code paths; migrating code from extra_args to append_args while leaving the old argument in place.","solutions":["Keep only extra_args if you want to fully control the service arguments.","Keep only append_args if you want to add to the default arguments.","Merge the desired flags into a single list passed as one of the two parameters."],"exampleFix":"// before\nJavaJarExpansionService(jar, extra_args=['--a'], append_args=['--b'])\n// after\nJavaJarExpansionService(jar, append_args=['--b'])","handlingStrategy":"validation","validationCode":"assert not (extra_args and append_args), 'use only one of extra_args/append_args'","typeGuard":"def service_args_ok(extra_args, append_args) -> bool:\n    return not (extra_args and append_args)","tryCatchPattern":"try:\n    svc = JavaJarExpansionService(jar, extra_args=ea, append_args=aa)\nexcept ValueError as e:\n    logger.error('Conflicting JVM args: %s', e)","preventionTips":["Choose one convention (usually append_args) project-wide","Merge flag lists before constructing the service","Review constructors after refactors for leftover parameters"],"tags":["python","apache-beam","expansion-service","mutually-exclusive","cli-args"],"backgroundTag":"mutually-exclusive-flags","analyzedSha":"12126d8942aaf848030c478b4c6a28c6af861c66","analyzedAt":"2026-09-13T01:50:10.254Z","contentChangedAt":"2026-09-13T01:50:10.254Z","schemaVersion":2},"datasetVersion":"2026-09-14T11:17:12.474Z"}