{"record":{"id":"7652edf7a533abf4","repo":"apache/cassandra","slug":"unsupported-operation-s","errorCode":null,"errorMessage":"Unsupported operation: %s","messagePattern":"Unsupported operation: (.+?)","errorType":"console","errorClass":"IllegalStateException","httpStatus":null,"severity":"error","filePath":"src/java/org/apache/cassandra/tools/nodetool/Decommission.java","lineNumber":55,"sourceCode":"        try\n        {\n            if (probe.getStorageService().isDecommissioning())\n            {\n                probe.output().out.println(\"This node is still decommissioning.\");\n                return;\n            }\n            if (\"DECOMMISSIONED\".equals(probe.getStorageService().getBootstrapState()))\n            {\n                probe.output().out.println(\"Node was already decommissioned.\");\n                return;\n            }\n            probe.decommission(force);\n        } catch (InterruptedException e)\n        {\n            throw new RuntimeException(\"Error decommissioning node\", e);\n        } catch (UnsupportedOperationException e)\n        {\n            throw new IllegalStateException(\"Unsupported operation: \" + e.getMessage(), e);\n        }\n    }\n\n    @Command(name = \"abortdecommission\", description = \"Abort an ongoing, failed decommission\")\n    public static class Abort extends AbstractCommand\n    {\n        @Option(paramLabel = \"nodeId\", names = { \"--node\" })\n        private String nodeId;\n\n        @Override\n        protected void execute(NodeProbe probe)\n        {\n            probe.abortDecommission(nodeId);\n        }\n    }\n}\n","sourceCodeStart":37,"sourceCodeEnd":72,"githubUrl":"https://github.com/apache/cassandra/blob/88fd0f6a0eaed8943f05ac9e8f947882b8ddc8f1/src/java/org/apache/cassandra/tools/nodetool/Decommission.java#L37-L72","documentation":"RuntimeException from Decommission.execute when the wrapped failure is an UnsupportedOperationException from the server — e.g. decommission is not supported for this node's state or configuration (such as force decommission on a node where it is disallowed, or operation unsupported in the current mode).","triggerScenarios":"Thrown at src/java/org/apache/cassandra/tools/nodetool/Decommission.java:55 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Check the chained message for which operation is unsupported","Ensure the node is eligible for decommission (not the last node in a datacenter unless intended)","Use the appropriate nodetool flag or remove the node via a different procedure"],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"88fd0f6a0eaed8943f05ac9e8f947882b8ddc8f1","analyzedAt":"2026-09-10T07:29:22.284Z","contentChangedAt":"2026-09-10T07:29:22.284Z","schemaVersion":2},"datasetVersion":"2026-09-17T15:17:12.973Z"}