{"record":{"id":"cff155d7191e3326","repo":"apache/cassandra","slug":"cannot-update-name","errorCode":null,"errorMessage":"Cannot update '\" + name + \"'","messagePattern":"Cannot update '\" \\+ name \\+ \"'","errorType":"validation","errorClass":"InvalidRequestException","httpStatus":null,"severity":"error","filePath":"src/java/org/apache/cassandra/db/virtual/AccordDebugKeyspace.java","lineNumber":1163,"sourceCode":"            TxnId txnId = TxnId.parse((String)partitionKeys[0]);\n            tracing().stopTracing(txnId);\n        }\n\n        @Override\n        protected void applyRowUpdate(Object[] partitionKeys, @Nullable Object[] clusteringKeys, ColumnMetadata[] columns, Object[] values)\n        {\n            TxnId txnId = TxnId.parse((String)partitionKeys[0]);\n            CoordinationKinds newTrace = null;\n            BucketMode newBucketMode = null;\n            boolean unsetManagedByOwner = false;\n            int newBucketSize = -1, newBucketSubSize = -1, newBucketSeen = -1;\n            float newChance = Float.NaN;\n            for (int i = 0 ; i < columns.length ; ++i)\n            {\n                String name = columns[i].name.toString();\n                switch (name)\n                {\n                    default: throw new InvalidRequestException(\"Cannot update '\" + name + '\\'');\n                    case \"bucket_mode\":\n                        newBucketMode = checkBucketMode(values[i]);\n                        break;\n                    case \"chance\":\n                        newChance = checkChance(values[i], name);\n                        break;\n                    case \"managed_by_pattern\":\n                        if (values[i] != null && (Boolean)values[i])\n                            throw new InvalidRequestException(\"Can only unset '\" + name + '\\'');\n                        unsetManagedByOwner = true;\n                        break;\n                    case \"bucket_size\":\n                        newBucketSize = checkNonNegative(values[i], name, 0);\n                        break;\n                    case \"bucket_sub_size\":\n                        newBucketSubSize = checkNonNegative(values[i], name, 0);\n                        break;\n                    case \"bucket_seen\":","sourceCodeStart":1145,"sourceCodeEnd":1181,"githubUrl":"https://github.com/apache/cassandra/blob/88fd0f6a0eaed8943f05ac9e8f947882b8ddc8f1/src/java/org/apache/cassandra/db/virtual/AccordDebugKeyspace.java#L1145-L1181","documentation":"The accord_debug tracing table's update path validates each SET column against a fixed whitelist (bucket_mode, chance, managed_by_pattern, bucket_size, bucket_sub_size, ...). Any other column name hits the default branch and throws InvalidRequestException 'Cannot update <name>'.","triggerScenarios":"Issuing 'UPDATE system_views.accord_debug_tracing SET <unknown_col> = ... WHERE txn_id = ...' with a column not in the switch, including partition/primary-key columns or mistyped column names.","commonSituations":"Typo in column name (e.g. 'chancey' instead of 'chance'); trying to update key columns like txn_id; copying UPDATE statements from other virtual tables with different columns.","solutions":["Use only the supported columns in the SET clause: bucket_mode, chance, managed_by_pattern, bucket_size, bucket_sub_size (per this table's schema).","Check the table definition (DESCRIBE TABLE system_views.accord_debug_tracing) before writing the UPDATE.","Fix any typos in column names.","Do not attempt to update primary key columns."],"exampleFix":"// before\nsession.execute(\"UPDATE system_views.accord_debug_tracing SET chancey = 0.5 WHERE txn_id = '...'\");\n// after\nsession.execute(\"UPDATE system_views.accord_debug_tracing SET chance = 0.5 WHERE txn_id = '...'\");","handlingStrategy":"validation","validationCode":"java.util.Set<String> allowed = java.util.Set.of(\"bucket_mode\", \"chance\", \"managed_by_pattern\", \"bucket_size\", \"bucket_sub_size\");\nif (!allowed.containsAll(assignmentColumns)) throw new IllegalArgumentException(\"Unsupported columns: \" + assignmentColumns);","typeGuard":null,"tryCatchPattern":"try { session.execute(update); } catch (com.datastax.driver.core.exceptions.InvalidQueryException e) { if (e.getMessage().startsWith(\"Cannot update '\")) { /* fix column list */ } else throw e; }","preventionTips":["DESCRIBE the virtual table to list writable columns before UPDATE","Never update primary key columns of debug tables","Keep per-table UPDATE statements separate — do not copy between accord_debug tables"],"tags":["virtual-table","invalid-column","accord","invalid-request","cassandra"],"backgroundTag":"invalid-argument-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"}