apache/beam · error · ValueError
An unsupported source was specified
Error message
An unsupported source was specified: '%s'. Please specify one of the following sources: %s
What it means
ManagedReadTransform looked up the given source identifier in its table of known managed read sources (Kafka, BigQuery, Postgres, MySQL, SQL Server, Delta Lake, etc.) and found no entry; the accepted source keys are listed in the message.
Solutions
- Use one of the supported source keys, e.g. 'kafka', 'bigquery', 'postgres', 'mysql', 'sql_server', 'delta'
- Check spelling/case of the source key against the list in the error message
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at sdks/python/apache_beam/transforms/managed.py:119 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/65ba2dfad55af871.
Report an issue: GitHub.
Appendix: source
Thrown at sdks/python/apache_beam/transforms/managed.py:119
KAFKA: ManagedTransforms.Urns.KAFKA_READ.urn,
BIGQUERY: ManagedTransforms.Urns.BIGQUERY_READ.urn,
POSTGRES: ManagedTransforms.Urns.POSTGRES_READ.urn,
MYSQL: ManagedTransforms.Urns.MYSQL_READ.urn,
SQL_SERVER: ManagedTransforms.Urns.SQL_SERVER_READ.urn,
DELTA: ManagedTransforms.Urns.DELTA_LAKE_READ.urn,
}
def __init__(
self,
source: str,
config: Optional[dict[str, Any]] = None,
config_url: Optional[str] = None,
expansion_service=None):
super().__init__()
self._source = source
identifier = self._READ_TRANSFORMS.get(source.lower())
if not identifier:
raise ValueError(
f"An unsupported source was specified: '{source}'. Please specify "
f"one of the following sources: {list(self._READ_TRANSFORMS.keys())}")
# Store parameters for deferred expansion service creation
self._identifier = identifier
self._provided_expansion_service = expansion_service
self._underlying_identifier = identifier
self._yaml_config = yaml.dump(config)
self._config_url = config_url
def expand(self, input):
# Create expansion service with access to pipeline options
expansion_service = _resolve_expansion_service(
self._source,
self._identifier,
self._provided_expansion_service,
pipeline_options=input.pipeline._options)
View on GitHub (pinned to 12126d8942)