apache/beam · error
Encountered an Atomic type that is not currently supported b
Error message
Encountered an Atomic type that is not currently supported by RowCoder: ${atomicType} What it means
ManagedRead.__init__ validates the `source` argument against the _READ_TRANSFORMS registry (case-insensitively) and raises ValueError when no matching identifier exists. Only a fixed set of managed read sources (e.g. iceberg, kafka, bigquery) is supported; anything else is rejected before any expansion service work starts.
Source
Thrown at sdks/typescript/src/apache_beam/coders/row_coder.ts:267
switch (typeInfo.oneofKind) {
case "atomicType":
let atomicType: AtomicType = typeInfo.atomicType;
switch (atomicType) {
case AtomicType.INT16:
case AtomicType.INT32:
case AtomicType.INT64:
return new VarIntCoder();
// case AtomicType.BYTE:
case AtomicType.BYTES:
return new BytesCoder();
// case AtomicType.FLOAT:
// case AtomicType.DOUBLE:
case AtomicType.STRING:
return new StrUtf8Coder();
case AtomicType.BOOLEAN:
return new BoolCoder();
default:
throw new Error(
`Encountered an Atomic type that is not currently supported by RowCoder: ${atomicType}`,
);
}
break;
case "arrayType":
if (typeInfo.arrayType.elementType !== undefined) {
return new IterableCoder(
this.getCoderFromType(typeInfo.arrayType.elementType),
);
} else {
throw new Error("ElementType missing on ArrayType");
}
// case "iterableType":
// case "mapType":
case "rowType":
if (typeInfo.rowType.schema !== undefined) {
return RowCoder.fromSchema(typeInfo.rowType.schema);
} else {View on GitHub (pinned to 12126d8942)
Solutions
- Use one of the supported sources listed in the error message (e.g. 'iceberg', 'kafka', 'bigquery').
- Fix spelling of the source name (matching is on the lowercased string).
- Upgrade apache-beam if the desired managed source was added in a newer release; otherwise use the non-managed connector or an external Java transform.
Example fix
// before beam.ManagedRead(source='S3') // after beam.ManagedRead(source='iceberg') # or kafka / bigquery
Defensive patterns
Strategy: validation
Validate before calling
from apache_beam.transforms.managed import ManagedRead
assert str(source).lower() in ManagedRead._READ_TRANSFORMS, f'{source} not supported; use {list(ManagedRead._READ_TRANSFORMS)}' Type guard
def is_supported_source(source: str) -> bool:
from apache_beam.transforms.managed import ManagedRead
return str(source).lower() in ManagedRead._READ_TRANSFORMS Try / catch
try:
p | beam.ManagedRead(source=src, config=cfg)
except ValueError as e:
logger.error('Bad managed source %r: %s', src, e)
raise Prevention
- Copy source names from the error message's allowed list
- Use the managed source names supported by your installed Beam version
- For unlisted connectors, use the dedicated I/O connector or external Java transform instead
When it happens
Trigger: ManagedRead(source='s3'), ManagedRead(source='Ice Berg'), or any source string whose .lower() is not a key of _READ_TRANSFORMS.
Common situations: Typos or unsupported connectors (e.g. trying s3/jdbc when only iceberg/kafka/bigquery are supported); casing confusion is tolerated (lowercased) but wrong names are not; reading docs for a newer Beam that supports more sources.
Understand the failure class
Background: Invalid enum value errors: "Unknown type", "Invalid scope", "must be one of" — when a string is not on the library's allowed list — this error's family across 23 libraries.
Related errors
- Could not find coder for URN " + urn
- Please specify a BigQuery table to read from.
- nrows not yet supported
- Found no files that match {self.path!r}
- Cannot call read after iterating.
AI-assisted analysis of apache/beam@12126d8942 (2026-09-13).
Data as JSON: /api/errors/5e3a7e5a076dd6ed.
Report an issue: GitHub.