{"record":{"id":"7894a01fde5f2f13","repo":"apache/cassandra","slug":"no-accord-transaction-should-be-executed-when-acco","errorCode":null,"errorMessage":"No accord transaction should be executed when accord.enabled = false in cassandra.yaml","messagePattern":"No accord transaction should be executed when accord\\.enabled = false in cassandra\\.yaml","errorType":"exception","errorClass":"UnsupportedOperationException","httpStatus":null,"severity":"error","filePath":"src/java/org/apache/cassandra/service/accord/IAccordService.java","lineNumber":223,"sourceCode":"    {\n        private static final Future<Void> BOOTSTRAP_SUCCESS = ImmediateFuture.success(null);\n\n        @Override\n        public IVerbHandler<? extends Request> requestHandler()\n        {\n            return null;\n        }\n\n        @Override\n        public IVerbHandler<? extends Reply> responseHandler()\n        {\n            return null;\n        }\n\n        @Override\n        public AsyncResult<Void> sync(Object requestedBy, @Nullable TxnId onOrAfter, Ranges ranges, @Nullable Collection<Id> include, SyncLocal syncLocal, SyncRemote syncRemote, long timeout, TimeUnit timeoutUnits)\n        {\n            throw new UnsupportedOperationException(\"No accord transaction should be executed when accord.enabled = false in cassandra.yaml\");\n        }\n\n        @Override\n        public AsyncChain<Void> sync(@Nullable TxnId onOrAfter, Keys keys, SyncLocal syncLocal, SyncRemote syncRemote)\n        {\n            throw new UnsupportedOperationException(\"No accord transaction should be executed when accord.enabled = false in cassandra.yaml\");\n        }\n\n        @Override\n        public AsyncChain<Timestamp> maxConflict(Ranges ranges)\n        {\n            throw new UnsupportedOperationException(\"No accord transaction should be executed when accord.enabled = false in cassandra.yaml\");\n        }\n\n        @Override\n        public @Nonnull TxnResult coordinate(long minEpoch, @Nonnull Txn txn, @Nonnull ConsistencyLevel consistencyLevel, @Nonnull RequestTime requestTime, long minHlc)\n        {\n            throw new UnsupportedOperationException(\"No accord transaction should be executed when accord.enabled = false in cassandra.yaml\");","sourceCodeStart":205,"sourceCodeEnd":241,"githubUrl":"https://github.com/apache/cassandra/blob/88fd0f6a0eaed8943f05ac9e8f947882b8ddc8f1/src/java/org/apache/cassandra/service/accord/IAccordService.java#L205-L241","documentation":"SupportAccordService is the placeholder IAccordService implementation installed when accord.enabled=false in cassandra.yaml. Every transactional entry point throws UnsupportedOperationException because executing Accord transactions is impossible while Accord is disabled. Hitting this means code paths reached Accord APIs despite the feature being turned off.","triggerScenarios":"Calling IAccordService.sync(requestedBy, onOrAfter, ranges, include, syncLocal, syncRemote, timeout, units) on SupportAccordService, i.e. any code path that performs Accord replica sync/reconciliation while accord.enabled=false.","commonSituations":"Operator disables Accord in cassandra.yaml but application code, a tool, or a tests path still invokes Accord sync/repair routines; version upgrades where new code unconditionally touches Accord APIs; tests exercising sync against a node configured without Accord.","solutions":["Set accord.enabled=true in cassandra.yaml and restart the node if Accord functionality is required","Remove or gate the code path calling IAccordService.sync so it is not invoked when Accord is disabled","Check StorageService/IAccordService.isEnabled() before invoking any Accord API and branch to the non-Accord path","Verify the node loaded the intended cassandra.yaml (wrong config file can silently leave Accord disabled)"],"exampleFix":"// before\naccordService.sync(requestedBy, null, ranges, null, syncLocal, syncRemote, timeout, TimeUnit.MILLISECONDS);\n// after\nif (accordService.isEnabled())\n    accordService.sync(requestedBy, null, ranges, null, syncLocal, syncRemote, timeout, TimeUnit.MILLISECONDS);\nelse\n    logger.info(\"Skipping Accord sync: accord.enabled=false\");","handlingStrategy":"try-catch","validationCode":"if (!accordService.isEnabled()) { /* skip Accord sync or use non-Accord path */ }","typeGuard":"boolean accordAvailable(IAccordService s) { return s != null && s.isEnabled(); }","tryCatchPattern":"try { accordService.sync(requestedBy, onOrAfter, ranges, include, syncLocal, syncRemote, timeout, units); } catch (UnsupportedOperationException e) { logger.warn(\"Accord disabled; skipping sync\", e); }","preventionTips":["Always check IAccordService.isEnabled() before any Accord API call","Keep accord.enabled consistent across cluster nodes","Cover both enabled/disabled configurations in tests","Track config drift between environments"],"tags":["accord","cassandra","unsupported-operation","configuration"],"backgroundTag":"feature-not-enabled","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"}