apache/beam · error · ValueError

Found multiple SchemaTransforms with the name '%s': %s

Error message

Found multiple SchemaTransforms with the name '%s':
%s

What it means

Raised by SchemaAwareExternalTransform.discover_config when resolving a SchemaTransform by a short name fragment: the discovery service returned more than one SchemaTransform whose identifier contains the given `name`, so the match is ambiguous. It fires when the name substring is too generic (e.g., 'write' matching many transforms); the error lists all matching identifiers so the caller can supply a more specific name. Its sibling checks reject zero matches as well.

Source

Thrown at sdks/python/apache_beam/transforms/external.py:589

    :raises:
      ValueError: if more than one SchemaTransform is discovered, or if none
      are discovered
    """

    schematransforms = SchemaAwareExternalTransform.discover(
        expansion_service, ignore_errors=True)
    matched = []

    for st in schematransforms:
      if name in st.identifier:
        matched.append(st)

    if not matched:
      raise ValueError(
          "Did not discover any SchemaTransforms resembling the name '%s'" %
          name)
    elif len(matched) > 1:
      raise ValueError(
          "Found multiple SchemaTransforms with the name '%s':\n%s\n" %
          (name, [st.identifier for st in matched]))

    return matched[0]


class JavaExternalTransform(ptransform.PTransform):
  """A proxy for Java-implemented external transforms.

  One builds these transforms just as one would in Java, e.g.::

      transform = JavaExternalTransform('fully.qualified.ClassName'
          )(contructorArg, ... ).builderMethod(...)

  or::

      JavaExternalTransform('fully.qualified.ClassName').staticConstructor(
          ...).builderMethod1(...).builderMethod2(...)

View on GitHub (pinned to 12126d8942)

Solutions

  1. Use the full, exact identifier of the transform instead of an ambiguous substring
  2. Rename or exclude one of the matching transforms from the expansion service
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at sdks/python/apache_beam/transforms/external.py:589 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of apache/beam@12126d8942 (2026-09-13). Data as JSON: /api/errors/53f522734ef012c7. Report an issue: GitHub.