{"record":{"id":"ccfffbe575adec84","repo":"apache/beam","slug":"unknown-context-parameter-param-pardoparamname","errorCode":null,"errorMessage":"Unknown context parameter: ${param.parDoParamName}","messagePattern":"Unknown context parameter: (.+?)","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"sdks/typescript/src/apache_beam/worker/pardo_context.ts","lineNumber":177,"sourceCode":"      );\n    }\n\n    switch (param.parDoParamName) {\n      case \"window\":\n        // If we're here and there was more than one window, we have exploded.\n        return this.wvalue.windows[0];\n\n      case \"timestamp\":\n        return this.wvalue.timestamp;\n\n      case \"paneinfo\":\n        return this.wvalue.pane;\n\n      case \"sideInput\":\n        return this.sideInputValues.get(param.sideInputId) as any;\n\n      default:\n        throw new Error(\"Unknown context parameter: \" + param.parDoParamName);\n    }\n  }\n\n  update(param, value) {\n    switch (param.parDoParamName) {\n      case \"metric\":\n        this.metricsContainer\n          .getMetric(this.transformId, undefined, param as MetricSpec)\n          .update(value);\n        break;\n\n      default:\n        throw new Error(\"Unknown context parameter: \" + param.parDoParamName);\n    }\n  }\n}\n\nexport interface SideInputInfo {","sourceCodeStart":159,"sourceCodeEnd":195,"githubUrl":"https://github.com/apache/beam/blob/12126d8942aaf848030c478b4c6a28c6af861c66/sdks/typescript/src/apache_beam/worker/pardo_context.ts#L159-L195","documentation":"In the Beam TypeScript worker, PardoContext.lookup(param) resolves a DoFn parameter (Element, Timestamp, PaneInfo, SideInput, etc.) via a switch on param.parDoParamName. If the parameter name is not one of the handled cases, the worker throws this Error because it cannot supply a value for an unrecognized DoFn parameter.","triggerScenarios":"A ParDo instruction references a parDoParamName not in {element, timestamp, paneinfo/window, sideInput, ...} — e.g. a new Beam Fn API parameter type introduced in a newer runner/SDK version that this TypeScript worker build does not know, or a corrupted/older pipeline proto.","commonSituations":"Version mismatch between the runner (e.g. Python/Java pipeline submitting a job using a newly added context parameter) and an outdated TypeScript worker; custom pipeline graph manipulation producing an exotic ParDoPayload param.","solutions":["Upgrade the apache-beam TypeScript worker package to a version matching the SDK that built the pipeline, so the parameter name is recognized.","Inspect the failing pipeline graph's ParDo payload to see which parDoParamName is sent and confirm it is a standard Beam parameter.","Add the missing case to lookup() in pardo_context.ts if you maintain a fork and know how to resolve the new parameter.","File/report an issue to Beam with the parameter URN/name if it comes from a supported SDK version."],"exampleFix":"// before (worker build predates new param)\n// throws: Unknown context parameter: TIMER_TIMESTAMP\n// after: upgrade @apache-beam/worker to a version that handles timer params, or pin SDK to compatible version","handlingStrategy":"try-catch","validationCode":"// before submitting, confirm worker version matches SDK\nif (param.parDoParamName && !['element','timestamp','window','paneinfo','sideInput','metric'].includes(param.parDoParamName)) {\n  throw new Error(`Precheck: unsupported parDoParamName ${param.parDoParamName}`);\n}","typeGuard":"const isKnownParam = (p: any): p is {parDoParamName: 'element'|'timestamp'|'paneinfo'|'sideInput'} =>\n  ['element','timestamp','paneinfo','sideInput'].includes(p?.parDoParamName);","tryCatchPattern":"try {\n  const v = ctx.lookup(param);\n} catch (e) {\n  if (String(e.message).startsWith('Unknown context parameter')) {\n    // fail the instruction with a clear upgrade hint\n    throw new Error(`Worker too old for param ${param.parDoParamName}; upgrade worker`);\n  }\n  throw e;\n}","preventionTips":["Keep the TS worker package version aligned with the SDK that builds pipelines","Pin Beam SDK versions in your runner images","Smoke-test pipelines with new DoFn features on a staging runner before production"],"tags":["worker","beam","pardo","version-mismatch"],"backgroundTag":"invalid-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"}