apache/beam · error · ValueError
Fully qualifed name " " not allowed by filter .
Error message
Fully qualifed name "%s" not allowed by filter %s.
What it means
FullyQualifiedNamedTransform only instantiates transforms whose fully qualified names match an allowlist glob (set via the filter option, e.g. by Beam's interactive/YAML sandboxes); the resolved constructor's module path failed fnmatch against that filter, so the load is refused for safety.
Solutions
- Widen or adjust the filter glob to include the needed module path
- Move/reconstruct the transform under an already-allowed package
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at sdks/python/apache_beam/transforms/fully_qualified_named_transform.py:84 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/51043c9fc44f3276.
Report an issue: GitHub.
Appendix: source
Thrown at sdks/python/apache_beam/transforms/fully_qualified_named_transform.py:84
source = kwargs.pop('source')
if isinstance(source, str):
source = python_callable.PythonCallableWithSource(source)
if self._constructor == '__constructor__':
transform = source(*args, **kwargs)
else:
transform = ptransform._PTransformFnPTransform(source, *args, **kwargs)
else:
transform = self._resolve(self._constructor)(*self._args, **self._kwargs)
return pinput | transform
@classmethod
def _check_allowed(cls, fully_qualified_name):
if not cls._FILTER_GLOB or not fnmatch.fnmatchcase(fully_qualified_name,
cls._FILTER_GLOB):
raise ValueError(
f'Fully qualifed name "{fully_qualified_name}" '
f'not allowed by filter {cls._FILTER_GLOB}.')
@classmethod
def _resolve(cls, fully_qualified_name):
cls._check_allowed(fully_qualified_name)
o = None
path = ''
for segment in fully_qualified_name.split('.'):
path = '.'.join([path, segment]) if path else segment
if o is not None and hasattr(o, segment):
o = getattr(o, segment)
else:
o = importlib.import_module(path)
return o
def to_runner_api_parameter(self, unused_context):
_args_schema = named_fields_to_schema([View on GitHub (pinned to 12126d8942)