apache/beam · error · IllegalArgumentException
Unknown %s: %s
Error message
Unknown %s: %s
What it means
convertTimestampTransform translates a RunnerApi.TimestampTransform into its Java Trigger timestamp-transform equivalent. If the TimestampTransformCase is neither TRUNCATE nor ALIGNTO, the case is unknown and an IllegalArgumentException is thrown.
Source
Thrown at sdks/java/core/src/main/java/org/apache/beam/sdk/util/construction/TriggerTranslation.java:198
private RunnerApi.TimestampTransform convertTimestampTransform(TimestampTransform transform) {
if (transform instanceof TimestampTransform.Delay) {
return RunnerApi.TimestampTransform.newBuilder()
.setDelay(
RunnerApi.TimestampTransform.Delay.newBuilder()
.setDelayMillis(((TimestampTransform.Delay) transform).getDelay().getMillis()))
.build();
} else if (transform instanceof TimestampTransform.AlignTo) {
TimestampTransform.AlignTo alignTo = (TimestampTransform.AlignTo) transform;
return RunnerApi.TimestampTransform.newBuilder()
.setAlignTo(
RunnerApi.TimestampTransform.AlignTo.newBuilder()
.setPeriod(alignTo.getPeriod().getMillis())
.setOffset(alignTo.getOffset().getMillis()))
.build();
} else {
throw new IllegalArgumentException(
String.format("Unknown %s: %s", TimestampTransform.class.getSimpleName(), transform));
}
}
}
public static Trigger fromProto(RunnerApi.Trigger triggerProto) {
switch (triggerProto.getTriggerCase()) {
case AFTER_ALL:
return AfterAll.of(protosToTriggers(triggerProto.getAfterAll().getSubtriggersList()));
case AFTER_ANY:
return AfterFirst.of(protosToTriggers(triggerProto.getAfterAny().getSubtriggersList()));
case AFTER_EACH:
return AfterEach.inOrder(
protosToTriggers(triggerProto.getAfterEach().getSubtriggersList()));
case AFTER_END_OF_WINDOW:
RunnerApi.Trigger.AfterEndOfWindow eowProto = triggerProto.getAfterEndOfWindow();
if (!eowProto.hasEarlyFirings() && !eowProto.hasLateFirings()) {View on GitHub (pinned to 12126d8942)
Solutions
- Use an SDK version that supports the timestamp transform case in the pipeline proto
- Regenerate the pipeline with a compatible Beam version so only TRUNCATE/ALIGNTO cases are emitted
- Inspect the proto to confirm which case was set and fix the pipeline construction code
Example fix
// before: proto set TIMESTAMP_TRANSFORM case NEW_CASE // after: emit only supported cases: // TimestampTransform.newBuilder().setAlignTo(AlignTo...).build();
Defensive patterns
Strategy: type-guard
Validate before calling
if (transform.getTimestampTransformCase() != TimestampTransform.TimestampTransformCase.TRUNCATE
&& transform.getTimestampTransformCase() != TimestampTransform.TimestampTransformCase.ALIGNTO) {
throw new IllegalStateException("Unsupported timestamp transform case: " + transform.getTimestampTransformCase());
} Type guard
boolean isSupported(TimestampTransform t) {
return t.getTimestampTransformCase() == TimestampTransformCase.TRUNCATE
|| t.getTimestampTransformCase() == TimestampTransformCase.ALIGNTO;
} Try / catch
try {
TriggerTranslation.fromProto(triggerProto);
} catch (IllegalArgumentException e) {
// handle unsupported timestamp transform case
} Prevention
- Keep producer and consumer Beam versions aligned
- Check proto case support before translating pipelines from newer SDKs
When it happens
Trigger: Visiting a windowing/trigger payload whose timestamp_transform field holds a case not handled by this SDK version (e.g. a newer proto case from a higher Beam version).
Common situations: Pipeline proto generated by a newer Beam version and read by an older SDK; corrupted/generated protos with unsupported enum values.
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
- Unknown timestamp transform case: %s
- Unknown trigger case: %s
- Unrecognized value for stable unique names:
- Unknown ValueKind number: {}
- Required field 'timestamp_transform' not set in %s
AI-assisted analysis of apache/beam@12126d8942 (2026-09-13).
Data as JSON: /api/errors/2e7184d21d3c5f3e.
Report an issue: GitHub.