{"record":{"id":"2e7184d21d3c5f3e","repo":"apache/beam","slug":"unknown-s-s-triggertranslation","errorCode":null,"errorMessage":"Unknown %s: %s","messagePattern":"Unknown (.+?): (.+?)","errorType":"exception","errorClass":"IllegalArgumentException","httpStatus":null,"severity":"error","filePath":"sdks/java/core/src/main/java/org/apache/beam/sdk/util/construction/TriggerTranslation.java","lineNumber":198,"sourceCode":"\n    private RunnerApi.TimestampTransform convertTimestampTransform(TimestampTransform transform) {\n      if (transform instanceof TimestampTransform.Delay) {\n        return RunnerApi.TimestampTransform.newBuilder()\n            .setDelay(\n                RunnerApi.TimestampTransform.Delay.newBuilder()\n                    .setDelayMillis(((TimestampTransform.Delay) transform).getDelay().getMillis()))\n            .build();\n      } else if (transform instanceof TimestampTransform.AlignTo) {\n        TimestampTransform.AlignTo alignTo = (TimestampTransform.AlignTo) transform;\n        return RunnerApi.TimestampTransform.newBuilder()\n            .setAlignTo(\n                RunnerApi.TimestampTransform.AlignTo.newBuilder()\n                    .setPeriod(alignTo.getPeriod().getMillis())\n                    .setOffset(alignTo.getOffset().getMillis()))\n            .build();\n\n      } else {\n        throw new IllegalArgumentException(\n            String.format(\"Unknown %s: %s\", TimestampTransform.class.getSimpleName(), transform));\n      }\n    }\n  }\n\n  public static Trigger fromProto(RunnerApi.Trigger triggerProto) {\n    switch (triggerProto.getTriggerCase()) {\n      case AFTER_ALL:\n        return AfterAll.of(protosToTriggers(triggerProto.getAfterAll().getSubtriggersList()));\n      case AFTER_ANY:\n        return AfterFirst.of(protosToTriggers(triggerProto.getAfterAny().getSubtriggersList()));\n      case AFTER_EACH:\n        return AfterEach.inOrder(\n            protosToTriggers(triggerProto.getAfterEach().getSubtriggersList()));\n      case AFTER_END_OF_WINDOW:\n        RunnerApi.Trigger.AfterEndOfWindow eowProto = triggerProto.getAfterEndOfWindow();\n\n        if (!eowProto.hasEarlyFirings() && !eowProto.hasLateFirings()) {","sourceCodeStart":180,"sourceCodeEnd":216,"githubUrl":"https://github.com/apache/beam/blob/12126d8942aaf848030c478b4c6a28c6af861c66/sdks/java/core/src/main/java/org/apache/beam/sdk/util/construction/TriggerTranslation.java#L180-L216","documentation":"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.","triggerScenarios":"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).","commonSituations":"Pipeline proto generated by a newer Beam version and read by an older SDK; corrupted/generated protos with unsupported enum values.","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"],"exampleFix":"// before: proto set TIMESTAMP_TRANSFORM case NEW_CASE\n// after: emit only supported cases:\n// TimestampTransform.newBuilder().setAlignTo(AlignTo...).build();","handlingStrategy":"type-guard","validationCode":"if (transform.getTimestampTransformCase() != TimestampTransform.TimestampTransformCase.TRUNCATE\n    && transform.getTimestampTransformCase() != TimestampTransform.TimestampTransformCase.ALIGNTO) {\n  throw new IllegalStateException(\"Unsupported timestamp transform case: \" + transform.getTimestampTransformCase());\n}","typeGuard":"boolean isSupported(TimestampTransform t) {\n  return t.getTimestampTransformCase() == TimestampTransformCase.TRUNCATE\n      || t.getTimestampTransformCase() == TimestampTransformCase.ALIGNTO;\n}","tryCatchPattern":"try {\n  TriggerTranslation.fromProto(triggerProto);\n} catch (IllegalArgumentException e) {\n  // handle unsupported timestamp transform case\n}","preventionTips":["Keep producer and consumer Beam versions aligned","Check proto case support before translating pipelines from newer SDKs"],"tags":["java","beam","triggers","enum"],"backgroundTag":"invalid-enum-value","analyzedSha":"12126d8942aaf848030c478b4c6a28c6af861c66","analyzedAt":"2026-09-13T01:50:10.254Z","contentChangedAt":"2026-09-13T01:50:10.254Z","schemaVersion":2},"datasetVersion":"2026-09-14T21:17:11.552Z"}