apache/beam · error · ValueError

f"No inline provider found for {name}"

Error message

f"No inline provider found for {name}"

What it means

_InlineProviderNamespace.__getattr__ looks up a transform type among standard inline providers and returns its Python transform factory. If no InlineProvider exists for the requested attribute name (dash-normalized), a ValueError is raised.

Source

Thrown at sdks/python/apache_beam/yaml/yaml_provider.py:1738

    hasher = hashlib.new(digest)
    data = fileobj.read(1 << 20)
    while data:
      hasher.update(data)
      data = fileobj.read(1 << 20)
    return hasher


class _InlineProviderNamespace:
  """Gives fully qualified names to inline providers from standard_providers().

  This is needed to upgrade InlineProvider to ExternalPythonProvider.
  """
  def __getattr__(self, name):
    typ = name.replace('_', '-')
    for provider in standard_providers()[typ]:
      if isinstance(provider, InlineProvider):
        return provider._transform_factories[typ]
    raise ValueError(f"No inline provider found for {name}")


standard_inline_providers = _InlineProviderNamespace()

View on GitHub (pinned to 12126d8942)

Solutions

  1. Check the attribute/transform type spelling (underscores are converted to dashes).
  2. List available inline providers via standard_providers() to find valid type names.
  3. Use an ExternalProvider spec in the YAML if the transform is not available inline.
  4. Upgrade apache_beam if the transform was added in a newer version.

Example fix

# before
factory = apache_beam.yaml.standard_inline_providers.loggging

# after
factory = apache_beam.yaml.standard_inline_providers.logging
Defensive patterns

Strategy: type-guard

Validate before calling

from apache_beam.yaml.yaml_provider import standard_providers
if name not in standard_providers():
    raise ValueError(f'{name} is not a standard provider')

Type guard

def has_inline_provider(ns, name: str) -> bool:
    return name.replace('_', '-') in ns._transform_factories

Try / catch

try:
    factory = standard_inline_providers.my_transform
except ValueError:
    factory = None  # fall back to external provider spec

Prevention

When it happens

Trigger: Accessing an attribute on standard_inline_providers (or the module-level namespace) such as apache_beam.yaml.standard_inline_providers.some_unknown_type where 'some-unknown-type' has no inline provider registered.

Common situations: Typos in transform type names, accessing a provider that only exists as an ExternalProvider (not inline), or referencing a transform not available in the installed Beam version.

Understand the failure class

Background: "Not found" and "does not exist" errors: why "Task not found", "No such folder", and "Can't find" fire when a lookup comes back empty — this error's family across 14 libraries.

Related errors


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