{"record":{"id":"d0090ae92fcfb5af","repo":"apache/cassandra","slug":"cannot-run-accord-only-repair-on-s-s-which-isn","errorCode":null,"errorMessage":"Cannot run accord only repair on %s.%s, which isn't configured for accord operations","messagePattern":"Cannot run accord only repair on (.+?)\\.(.+?), which isn't configured for accord operations","errorType":"validation","errorClass":"IllegalArgumentException","httpStatus":null,"severity":"error","filePath":"src/java/org/apache/cassandra/repair/RepairCoordinator.java","lineNumber":305,"sourceCode":"        {\n            notifyError(e);\n            fail(e.getMessage());\n        }\n    }\n\n    private static void validate(RepairOption options, List<ColumnFamilyStore> columnFamilies)\n    {\n        if (options.paxosOnly() && options.accordOnly())\n            throw new IllegalArgumentException(\"Cannot specify a repair as both paxos only and accord only\");\n\n        for (ColumnFamilyStore cfs : columnFamilies)\n        {\n            TableMetadata metadata = cfs.metadata();\n            if (options.paxosOnly() && !metadata.supportsPaxosOperations())\n                throw new IllegalArgumentException(String.format(\"Cannot run paxos only repair on %s.%s, which isn't configured for paxos operations\", cfs.keyspace.getName(), cfs.name));\n\n            if (options.accordOnly() && !metadata.requiresAccordSupport())\n                throw new IllegalArgumentException(String.format(\"Cannot run accord only repair on %s.%s, which isn't configured for accord operations\", cfs.keyspace.getName(), cfs.name));\n        }\n    }\n\n    private void runMayThrow() throws Throwable\n    {\n        state.phase.setup();\n        ctx.repair().recordRepairStatus(state.cmd, ParentRepairStatus.IN_PROGRESS, ImmutableList.of());\n\n        List<ColumnFamilyStore> columnFamilies = getColumnFamilies();\n        validate(state.options, columnFamilies);\n        String[] cfnames = columnFamilies.stream().map(cfs -> cfs.name).toArray(String[]::new);\n\n        this.traceState = maybeCreateTraceState(columnFamilies);\n        notifyStarting();\n        NeighborsAndRanges neighborsAndRanges = getNeighborsAndRanges();\n\n        // We test to validate the start JMX notification is seen before we compute neighbors and ranges\n        // but in state (vtable) tracking, we rely on getNeighborsAndRanges to know where we are running repair...","sourceCodeStart":287,"sourceCodeEnd":323,"githubUrl":"https://github.com/apache/cassandra/blob/88fd0f6a0eaed8943f05ac9e8f947882b8ddc8f1/src/java/org/apache/cassandra/repair/RepairCoordinator.java#L287-L323","documentation":"When a repair is requested with accord-only, each repaired table must require/support Accord (metadata.requiresAccordSupport()). RepairCoordinator.validate throws IllegalArgumentException naming the offending keyspace and table.","triggerScenarios":"Running an accord-only repair that includes a column family not configured for Accord operations.","commonSituations":"Keyspace-wide accord-only repair over tables that are plain (non-Accord) tables; trial deployments where Accord support was enabled on some tables only.","solutions":["List only Accord-enabled tables explicitly in the repair command.","Enable Accord support on the table if it should participate, then retry.","Remove the --accord-only flag and use a standard repair."],"exampleFix":"// before\nnodetool repair --accord-only my_ks\n// after\nnodetool repair --accord-only my_ks accord_table","handlingStrategy":"validation","validationCode":"boolean accordSafe = columnFamilies.stream().allMatch(cf -> Schema.instance.getTableMetadata(ks, cf).requiresAccordSupport());\n","typeGuard":null,"tryCatchPattern":"try { repairAsync(ks, accordOnlyOptions); } catch (IllegalArgumentException e) { logger.error(\"accord-only repair rejected: {}\", e.getMessage()); }","preventionTips":["List Accord-enabled tables explicitly in repair scripts","Track which tables have Accord enabled per environment","Fall back to standard repair when accord-only is rejected"],"tags":["repair","validation","accord"],"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"}