{"record":{"id":"33e87028d4ebc4e1","repo":"apache/cassandra","slug":"unknown-bucket-mode-value","errorCode":null,"errorMessage":"Unknown bucket_mode '\" + value + \"'","messagePattern":"Unknown bucket_mode '\" \\+ value \\+ \"'","errorType":"validation","errorClass":"InvalidRequestException","httpStatus":null,"severity":"error","filePath":"src/java/org/apache/cassandra/db/virtual/AccordDebugKeyspace.java","lineNumber":2485,"sourceCode":"        {\n            Object o = ifNotNull.apply(v);\n            if (o == null)\n                return null;\n\n            return o.toString();\n        }\n        catch (Throwable t)\n        {\n            return \"<error: \" + t.getLocalizedMessage() + '>';\n        }\n    }\n\n    private static BucketMode checkBucketMode(Object value)\n    {\n        try { return AccordTracing.BucketMode.valueOf(LocalizeString.toUpperCaseLocalized((String)value, Locale.ENGLISH)); }\n        catch (IllegalArgumentException | NullPointerException e)\n        {\n            throw new InvalidRequestException(\"Unknown bucket_mode '\" + value + '\\'');\n        }\n\n    }\n\n    private static int checkNonNegative(Object value, String field, int ifNull)\n    {\n        if (value == null)\n            return ifNull;\n\n        int v = (Integer)value;\n        if (v < 0)\n            throw new InvalidRequestException(\"Cannot set '\" + field + \"' to negative value\");\n        return v;\n    }\n\n    private static float checkChance(Object value, String field)\n    {\n        if (value == null)","sourceCodeStart":2467,"sourceCodeEnd":2503,"githubUrl":"https://github.com/apache/cassandra/blob/88fd0f6a0eaed8943f05ac9e8f947882b8ddc8f1/src/java/org/apache/cassandra/db/virtual/AccordDebugKeyspace.java#L2467-L2503","documentation":"AccordDebugKeyspace's checkBucketMode parses a user-supplied bucket_mode value via AccordTracing.BucketMode.valueOf after uppercasing it. If the string does not name a BucketMode constant (or is null), valueOf throws IllegalArgumentException/NullPointerException, which is rethrown as an InvalidRequestException with the offending value in the message.","triggerScenarios":"Executing an UPDATE/INSERT against the Accord debug virtual table (e.g. system_views.accord_debug_tracing or similar) that sets a bucket_mode column to a string that is not a valid BucketMode enum name (case-insensitive), such as 'bakance' or a quoted/whitespace-polluted value.","commonSituations":"Typo when enabling Accord tracing bucketing via cqlsh; copying settings from documentation of a different version where the enum constant was renamed; passing a null or unquoted column value.","solutions":["Check AccordTracing.BucketMode enum constants and use one of those names, case-insensitively (e.g. 'full', 'none' — whatever the enum defines)","Correct any typos or stray whitespace/quotes in the bucket_mode value","If null is intended, omit the column rather than setting it to an empty or null string"],"exampleFix":"// before\nUPDATE system.accord_debug SET bucket_mode = 'bakanced';\n// after\nUPDATE system.accord_debug SET bucket_mode = 'balanced'; // must match an AccordTracing.BucketMode constant, case-insensitive","handlingStrategy":"validation","validationCode":"// before writing, check the value maps to a BucketMode\nboolean valid = java.util.Arrays.stream(AccordTracing.BucketMode.values())\n    .anyMatch(m -> m.name().equalsIgnoreCase(myValue));\nif (!valid) throw new IllegalArgumentException(\"bucket_mode must be one of \" + java.util.Arrays.toString(AccordTracing.BucketMode.values()));","typeGuard":"boolean isValidBucketMode(Object v) {\n    return v instanceof String s && java.util.Arrays.stream(AccordTracing.BucketMode.values())\n        .anyMatch(m -> m.name().equalsIgnoreCase(s.trim());\n}","tryCatchPattern":"try {\n    session.execute(updateWithBucketMode);\n} catch (InvalidRequestException e) {\n    if (e.getMessage().contains(\"Unknown bucket_mode\")) {\n        // retry with a corrected value from BucketMode.values()\n    }\n}","preventionTips":["List enum constants first (SELECT or javap) rather than guessing names","Trim user input and normalize case before sending","Avoid setting the column to null/empty strings; omit it to use defaults"],"tags":["cassandra","cql","invalid-enum-value","validation"],"backgroundTag":"invalid-enum-value","analyzedSha":"88fd0f6a0eaed8943f05ac9e8f947882b8ddc8f1","analyzedAt":"2026-09-10T07:29:22.284Z","contentChangedAt":"2026-09-10T07:29:22.284Z","schemaVersion":2},"datasetVersion":"2026-09-14T16:17:12.679Z"}