{"record":{"id":"af7be7c59047b573","repo":"apache/beam","slug":"did-not-find-a-schematransformprovider-with-the-identifier","errorCode":null,"errorMessage":"Did not find a SchemaTransformProvider with the identifier ","messagePattern":"Did not find a SchemaTransformProvider with the identifier ","errorType":"exception","errorClass":"java.lang.RuntimeException","httpStatus":null,"severity":"error","filePath":"sdks/java/expansion-service/src/main/java/org/apache/beam/sdk/expansion/service/ExpansionServiceSchemaTransformProvider.java","lineNumber":100,"sourceCode":"  }\n\n  @Override\n  public Map<String, PCollection<?>> extractOutputs(PCollectionRowTuple output) {\n    ImmutableMap.Builder<String, PCollection<?>> pCollectionMap = ImmutableMap.builder();\n    for (String key : output.getAll().keySet()) {\n      pCollectionMap.put(key, output.get(key));\n    }\n    return pCollectionMap.build();\n  }\n\n  @Override\n  public PTransform getTransform(FunctionSpec spec, PipelineOptions options) {\n    SchemaTransformPayload payload;\n    try {\n      payload = SchemaTransformPayload.parseFrom(spec.getPayload());\n      String identifier = payload.getIdentifier();\n      if (!schemaTransformProviders.containsKey(identifier)) {\n        throw new RuntimeException(\n            \"Did not find a SchemaTransformProvider with the identifier \" + identifier);\n      }\n\n    } catch (InvalidProtocolBufferException e) {\n      throw new IllegalArgumentException(\n          \"Invalid payload type for URN \" + getUrn(ExpansionMethods.Enum.SCHEMA_TRANSFORM), e);\n    }\n\n    String identifier = payload.getIdentifier();\n    org.apache.beam.sdk.schemas.transforms.SchemaTransformProvider provider =\n        schemaTransformProviders.get(identifier);\n    if (provider == null) {\n      throw new IllegalArgumentException(\n          \"Could not find a SchemaTransform with identifier \" + identifier);\n    }\n\n    Schema configSchemaFromRequest =\n        SchemaTranslation.schemaFromProto(payload.getConfigurationSchema());","sourceCodeStart":82,"sourceCodeEnd":118,"githubUrl":"https://github.com/apache/beam/blob/12126d8942aaf848030c478b4c6a28c6af861c66/sdks/java/expansion-service/src/main/java/org/apache/beam/sdk/expansion/service/ExpansionServiceSchemaTransformProvider.java#L82-L118","documentation":"ExpansionServiceSchemaTransformProvider.getTransform parses the FunctionSpec payload as a SchemaTransformPayload and looks up the identifier in its provider map. If the identifier is not registered, it throws a RuntimeException with this message. It means the expansion service cannot serve the requested SchemaTransform URN.","triggerScenarios":"An expansion request with URN SCHEMA_TRANSFORM whose payload identifier (e.g., 'beam:schematransform:org.apache.beam:my_transform:v1') has no matching SchemaTransformProvider on the service's classpath.","commonSituations":"Client SDK and expansion service at different Beam versions so the identifier/version string differs; provider jar not deployed to the service's classpath; identifier typo in pipeline construction.","solutions":["Add the jar containing the missing SchemaTransformProvider to the expansion service classpath and restart it","Align Beam SDK versions between the client pipeline and the expansion service so identifier versions match","Print available identifiers (e.g., via getAllProviders()) and compare with the requested identifier to catch typos or version suffix mismatches"],"exampleFix":"// before: service launched without the JDBC io jar\njava -jar expansion-service.jar\n// after\njava -cp expansion-service.jar:beam-sdks-java-io-jdbc-2.xx.0.jar org.apache.beam.sdk.expansion.service.ExpansionService ...","handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":"try { expansionService.expand(request); } catch (RuntimeException e) { if (e.getMessage().startsWith(\"Did not find a SchemaTransformProvider\")) { /* add provider jar / fix identifier */ } throw e; }","preventionTips":["Pin identical Beam versions on client and expansion service","List available identifiers from the service before expanding","Add all needed IO/schema-transform jars to the service launch classpath"],"tags":["java","beam","transform-lookup"],"backgroundTag":"resource-not-found","analyzedSha":"12126d8942aaf848030c478b4c6a28c6af861c66","analyzedAt":"2026-09-13T01:50:10.254Z","contentChangedAt":"2026-09-13T01:50:10.254Z","schemaVersion":2},"datasetVersion":"2026-09-20T03:17:13.778Z"}