{"record":{"id":"1d7baf31227ae3af","repo":"apache/beam","slug":"unsupported-watermark-policy-type-s","errorCode":null,"errorMessage":"Unsupported watermark policy type: %s","messagePattern":"Unsupported watermark policy type: (.+?)","errorType":"validation","errorClass":"RuntimeException","httpStatus":null,"severity":"error","filePath":"sdks/java/io/amazon-web-services2/src/main/java/org/apache/beam/sdk/io/aws2/kinesis/KinesisTransformRegistrar.java","lineNumber":303,"sourceCode":"      }\n      if (configuration.maxCapacityPerShard != null) {\n        readTransform =\n            readTransform.withMaxCapacityPerShard(configuration.maxCapacityPerShard.intValue());\n      }\n      if (configuration.watermarkPolicy != null) {\n        switch (configuration.watermarkPolicy) {\n          case ARRIVAL_TIME:\n            readTransform =\n                configuration.watermarkIdleDurationThreshold != null\n                    ? readTransform.withArrivalTimeWatermarkPolicy(\n                        configuration.watermarkIdleDurationThreshold)\n                    : readTransform.withArrivalTimeWatermarkPolicy();\n            break;\n          case PROCESSING_TIME:\n            readTransform = readTransform.withProcessingTimeWatermarkPolicy();\n            break;\n          default:\n            throw new RuntimeException(\n                String.format(\n                    \"Unsupported watermark policy type: %s\", configuration.watermarkPolicy));\n        }\n      }\n      if (configuration.rateLimit != null) {\n        readTransform = readTransform.withFixedDelayRateLimitPolicy(configuration.rateLimit);\n      }\n      if (configuration.maxReadTime != null) {\n        readTransform = readTransform.withMaxReadTime(configuration.maxReadTime);\n      }\n      if (configuration.initialPositionInStream != null) {\n        readTransform =\n            readTransform.withInitialPositionInStream(configuration.initialPositionInStream);\n      }\n      if (configuration.requestRecordsLimit != null) {\n        readTransform = readTransform.withRequestRecordsLimit(configuration.requestRecordsLimit);\n      }\n      if (configuration.initialTimestampInStream != null) {","sourceCodeStart":285,"sourceCodeEnd":321,"githubUrl":"https://github.com/apache/beam/blob/12126d8942aaf848030c478b4c6a28c6af861c66/sdks/java/io/amazon-web-services2/src/main/java/org/apache/beam/sdk/io/aws2/kinesis/KinesisTransformRegistrar.java#L285-L321","documentation":"The registrar translates configuration.watermarkPolicy (enum-like) onto KinesisIO watermark policies. Values outside the known set (ARRIVAL_TIME, PROCESSING_TIME, EMBEDDED) fall into the default branch and throw a RuntimeException naming the unsupported policy. Unlike the SchemaTransform provider, this path uses an enum/constant, so only exact matches compile-time-known values pass.","triggerScenarios":"Passing a watermarkPolicy string that doesn't match any configured enum constant in the cross-language pipeline spec, e.g. 'EVENT_TIME' or 'arrivaltime'.","commonSituations":"Copy-pasted options from the SchemaTransform provider (string-based) into cross-language JSON config with different casing; drift between Beam versions' supported policies.","solutions":["Use exactly ARRIVAL_TIME or PROCESSING_TIME (or the EMBEDDED option if supported) in configuration.watermarkPolicy","Match the enum constant names defined in KinesisTransformRegistrar/KinesisIO for your Beam version","Omit watermarkPolicy to use the default"],"exampleFix":"// before\n\"watermarkPolicy\": \"EVENT_TIME\"\n// after\n\"watermarkPolicy\": \"ARRIVAL_TIME\"","handlingStrategy":"validation","validationCode":"if (cfg.watermarkPolicy != null && !Set.of(\"ARRIVAL_TIME\",\"PROCESSING_TIME\",\"EMBEDDED\").contains(cfg.watermarkPolicy)) throw new IllegalArgumentException(\"unsupported watermarkPolicy\");","typeGuard":"boolean knownPolicy(String s){ return s==null || Set.of(\"ARRIVAL_TIME\",\"PROCESSING_TIME\",\"EMBEDDED\").contains(s); }","tryCatchPattern":"try { buildExternal(cfg); } catch (RuntimeException e) { correct watermarkPolicy to a supported constant; resubmit; }","preventionTips":["Match enum constant names exactly (uppercase)","Don't mix SchemaTransform string options with cross-language enum config","Pin Beam versions to keep supported policies consistent"],"tags":["kinesis","watermark","invalid-enum","cross-language"],"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-20T03:17:13.778Z"}