apache/cassandra · error · ConfigurationException
Auto-repair scheduler is disabled.
Error message
Auto-repair scheduler is disabled.
What it means
AutoRepairService.checkCanRun is the gate for executing auto-repair; its first check is the auto-repair scheduling config flag. When auto-repair scheduling is disabled, any checkCanRun call throws ConfigurationException('Auto-repair scheduler is disabled.') regardless of repair type.
Solutions
- Enable auto-repair scheduling in cassandra.yaml and restart/reload config
- Re-issue the repair request after enabling
- Skip auto-repair and run manual repair if scheduling is intentionally disabled
Example fix
// cassandra.yaml // before autorepair_scheduling_enabled: false // after autorepair_scheduling_enabled: true
Defensive patterns
Strategy: validation
Validate before calling
if (!DatabaseDescriptor.getRawConfig().autorepair_scheduling_enabled)
throw new IllegalStateException("Enable autorepair_scheduling_enabled before requesting auto-repair");
autoRepairService.checkCanRun(repairType); Try / catch
try { autoRepairService.checkCanRun(repairType); } catch (ConfigurationException e) { logger.warn("Auto-repair unavailable: {}", e.getMessage()); } Prevention
- Gate auto-repair tooling on the scheduling-enabled config
- Keep the flag consistent across the cluster to avoid per-node surprises
- Document enablement steps in the repair runbook
When it happens
Trigger: Invoking auto-repair (checkCanRun or the type-specific overloads) on a node where isAutoRepairSchedulingEnabled() returns false in the config.
Common situations: Clusters deployed with auto-repair scheduling off by default; operators triggering repair through tooling/JMX without first enabling the scheduler; post-upgrade configs that reset the flag.
Related errors
- Async Profiler is not enabled. Enable it by setting
- Can only safely increase number of transients one at a time…
- Cannot change transactional mode to
- Cannot run incremental repair while CDC replay is enabled…
- Cannot run incremental repair while materialized view…
AI-assisted analysis of apache/cassandra@88fd0f6a0e (2026-09-10).
Data as JSON: /api/errors/429b92854f19f598.
Report an issue: GitHub.
Appendix: source
Thrown at src/java/org/apache/cassandra/service/AutoRepairService.java:74
public static void setup()
{
instance.config = DatabaseDescriptor.getAutoRepairConfig();
}
static
{
MBeanWrapper.instance.registerMBean(instance, MBEAN_NAME);
}
public void checkCanRun(String repairType)
{
checkCanRun(RepairType.parse(repairType));
}
public void checkCanRun(RepairType repairType)
{
if (!config.isAutoRepairSchedulingEnabled())
throw new ConfigurationException("Auto-repair scheduler is disabled.");
if (repairType != RepairType.INCREMENTAL)
return;
if (config.getMaterializedViewRepairEnabled(repairType) && DatabaseDescriptor.isMaterializedViewsOnRepairEnabled())
throw new ConfigurationException("Cannot run incremental repair while materialized view replay is enabled. Set materialized_views_on_repair_enabled to false.");
if (DatabaseDescriptor.isCDCEnabled() && DatabaseDescriptor.isCDCOnRepairEnabled())
throw new ConfigurationException("Cannot run incremental repair while CDC replay is enabled. Set cdc_on_repair_enabled to false.");
}
public AutoRepairConfig getAutoRepairConfig()
{
return config;
}
@Override
public boolean isAutoRepairDisabled()View on GitHub (pinned to 88fd0f6a0e)