{"record":{"id":"389664488b23861b","repo":"apache/beam","slug":"a-list-of-urns-for-overriding-transforms-was-provided-but","errorCode":null,"errorMessage":"A list of URNs for overriding transforms was provided but the pipeline did not contain any matching transforms. Either make sure to include at least one matching transform in the pipeline or avoid setting the 'transformsToOverride' PipelineOption. Provided list of URNs: ","messagePattern":"A list of URNs for overriding transforms was provided but the pipeline did not contain any matching transforms\\. Either make sure to include at least one matching transform in the pipeline or avoid setting the 'transformsToOverride' PipelineOption\\. Provided list of URNs: ","errorType":"exception","errorClass":"IllegalArgumentException","httpStatus":null,"severity":"error","filePath":"sdks/java/core/src/main/java/org/apache/beam/sdk/util/construction/TransformUpgrader.java","lineNumber":141,"sourceCode":"                      String schemaTransformId = schemaTransformPayload.getIdentifier();\n                      if (urnsToOverride.contains(schemaTransformId)) {\n                        return true;\n                      }\n                    } catch (InvalidProtocolBufferException e) {\n                      throw new RuntimeException(e);\n                    }\n                  }\n\n                  return false;\n                })\n            .map(\n                entry -> {\n                  return entry.getKey();\n                })\n            .collect(Collectors.toList());\n\n    if (!urnsToOverride.isEmpty() && transformsToOverride.isEmpty()) {\n      throw new IllegalArgumentException(\n          \"A list of URNs for overriding transforms was provided but the pipeline did not contain \"\n              + \"any matching transforms. Either make sure to include at least one matching \"\n              + \"transform in the pipeline or avoid setting the 'transformsToOverride' \"\n              + \"PipelineOption. Provided list of URNs: \"\n              + urnsToOverride);\n    }\n\n    String serviceAddress;\n    TransformServiceLauncher service = null;\n\n    ExternalTranslationOptions externalTranslationOptions =\n        options.as(ExternalTranslationOptions.class);\n    if (externalTranslationOptions.getTransformServiceAddress() != null) {\n      serviceAddress = externalTranslationOptions.getTransformServiceAddress();\n    } else if (externalTranslationOptions.getTransformServiceBeamVersion() != null) {\n      String projectName = UUID.randomUUID().toString();\n      int port = findAvailablePort();\n      service = TransformServiceLauncher.forProject(projectName, port, null);","sourceCodeStart":123,"sourceCodeEnd":159,"githubUrl":"https://github.com/apache/beam/blob/12126d8942aaf848030c478b4c6a28c6af861c66/sdks/java/core/src/main/java/org/apache/beam/sdk/util/construction/TransformUpgrader.java#L123-L159","documentation":"TransformUpgrader checks that the URNs requested for override via the transformsToOverride PipelineOption actually matched transforms in the pipeline. If the URN list is non-empty but no pipeline transform matched any URN, it refuses to proceed because the override would be a silent no-op.","triggerScenarios":"Setting --transformsToOverride=urn:beam:... where no transform in the submitted pipeline has a matching URN (typo, URN from a different Beam version, or pipeline simply lacks that transform).","commonSituations":"Copy-pasting override URNs from docs/examples for a pipeline that doesn't contain those transforms; URN drift after a Beam version upgrade renamed schema-transform URNs.","solutions":["Verify each URN in transformsToOverride exists in the pipeline (e.g. via pipeline.toString() or a proto dump)","Remove the transformsToOverride option if no override is needed","Correct typo'd or outdated URNs to the actual transform URNs in the pipeline"],"exampleFix":"// before\n--transformsToOverride=urn:beam:schematransform:org.apache.beam:my_transform:v1  // URN not in pipeline\n// after\n--transformsToOverride=urn:beam:schematransform:org.apache.beam:actual_urn:v1   // URN present in pipeline","handlingStrategy":"validation","validationCode":"// Before enabling overrides, confirm the pipeline actually contains the URNs:\nString pipelineGraph = pipeline.toString(); // or traverse proto\nfor (String urn : options.as(TransformUpgraderOptions.class).getTransformsToOverride().values()) {\n  if (!pipelineGraph.contains(urn)) {\n    throw new IllegalStateException(\"transformsToOverride URN not present in pipeline: \" + urn);\n  }\n}","typeGuard":null,"tryCatchPattern":"try { pipeline.run(); } catch (IllegalArgumentException e) {\n  if (e.getMessage().contains(\"transformsToOverride\")) { /* correct or drop the URN list */ }\n  else throw e;\n}","preventionTips":["Copy override URNs from the actual pipeline graph, not documentation","Re-verify URNs after Beam version upgrades","Omit transformsToOverride when nothing needs overriding"],"tags":["java","beam","pipeline-options","override"],"backgroundTag":"empty-result-set","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"}