{"record":{"id":"95afe06ba3a7f23b","repo":"apache/beam","slug":"unsupported-writedisposition-value-supported-values-are","errorCode":null,"errorMessage":"Unsupported writeDisposition '\" + value + \"'. Supported values are APPEND, TRUNCATE, and EMPTY.","messagePattern":"Unsupported writeDisposition '\" \\+ value \\+ \"'\\. Supported values are APPEND, TRUNCATE, and EMPTY\\.","errorType":"validation","errorClass":"java.lang.IllegalArgumentException","httpStatus":null,"severity":"error","filePath":"sdks/java/io/snowflake/src/main/java/org/apache/beam/sdk/io/snowflake/SnowflakeSchemaTransformUtils.java","lineNumber":150,"sourceCode":"  }\n\n  public static CreateDisposition parseCreateDisposition(String value) {\n    try {\n      return CreateDisposition.valueOf(value);\n    } catch (IllegalArgumentException e) {\n      throw new IllegalArgumentException(\n          \"Unsupported createDisposition '\"\n              + value\n              + \"'. Supported values are CREATE_IF_NEEDED and CREATE_NEVER.\",\n          e);\n    }\n  }\n\n  public static WriteDisposition parseWriteDisposition(String value) {\n    try {\n      return WriteDisposition.valueOf(value);\n    } catch (IllegalArgumentException e) {\n      throw new IllegalArgumentException(\n          \"Unsupported writeDisposition '\"\n              + value\n              + \"'. Supported values are APPEND, TRUNCATE, and EMPTY.\",\n          e);\n    }\n  }\n\n  public static SnowflakeTableSchema toSnowflakeTableSchema(Schema schema) {\n    SnowflakeColumn[] columns =\n        schema.getFields().stream()\n            .map(SnowflakeSchemaTransformUtils::toSnowflakeColumn)\n            .toArray(SnowflakeColumn[]::new);\n\n    return SnowflakeTableSchema.of(columns);\n  }\n\n  public static SnowflakeColumn toSnowflakeColumn(Schema.Field field) {\n    SnowflakeDataType snowflakeType = toSnowflakeDataType(field);","sourceCodeStart":132,"sourceCodeEnd":168,"githubUrl":"https://github.com/apache/beam/blob/12126d8942aaf848030c478b4c6a28c6af861c66/sdks/java/io/snowflake/src/main/java/org/apache/beam/sdk/io/snowflake/SnowflakeSchemaTransformUtils.java#L132-L168","documentation":"parseWriteDisposition maps a configuration string to the WriteDisposition enum via valueOf. Any value other than exactly APPEND, TRUNCATE, or EMPTY is rejected with an IllegalArgumentException showing the bad value and the supported set.","triggerScenarios":"Passing e.g. \"APPEND_ONLY\", \"OVERWRITE\", \"append\", or \"TRUNC\" to parseWriteDisposition during Snowflake sink configuration.","commonSituations":"Lowercase or mixed-case values from YAML/env config; using synonyms from other warehouses (INSERT_OVERWRITE, REPLACE); copy-paste from BigQuery docs is fine here but Dataflow templates may inject unexpected defaults.","solutions":["Pass exactly APPEND, TRUNCATE, or EMPTY.","Normalize the string (trim + uppercase) before calling the parser.","Prefer the enum constant directly instead of parsing strings where possible."],"exampleFix":"// before\nparseWriteDisposition(\"OVERWRITE\")\n// after\nparseWriteDisposition(\"TRUNCATE\")","handlingStrategy":"validation","validationCode":"if (!value.equals(\"APPEND\") && !value.equals(\"TRUNCATE\") && !value.equals(\"EMPTY\")) {\n  throw new IllegalArgumentException(\"writeDisposition must be APPEND, TRUNCATE, or EMPTY\");\n}","typeGuard":null,"tryCatchPattern":"try { disp = SnowflakeSchemaTransformUtils.parseWriteDisposition(raw); }\ncatch (IllegalArgumentException e) { disp = WriteDisposition.APPEND; }","preventionTips":["Use WriteDisposition enum constants directly when possible.","Normalize (trim/uppercase) before parsing.","Document the three valid values in pipeline templates."],"tags":["java","snowflake","enum","parsing"],"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"}