{"record":{"id":"a6efee60ff9977e7","repo":"apache/cassandra","slug":"invalid-accord-progress-log-configuration","errorCode":null,"errorMessage":"Invalid accord progress log configuration: ","messagePattern":"Invalid accord progress log configuration: ","errorType":"validation","errorClass":"ConfigurationException","httpStatus":null,"severity":"error","filePath":"src/java/org/apache/cassandra/config/DatabaseDescriptor.java","lineNumber":1420,"sourceCode":"        }\n        catch (IllegalArgumentException e)\n        {\n            throw new ConfigurationException(\"Invalid guardrails configuration: \" + e.getMessage(), e);\n        }\n    }\n\n    // TODO (expected): move all of the Accord config setup and accessors into AccordConfig\n    private static void applyAccord()\n    {\n        try\n        {\n            accordProgressLogConfig = new DefaultProgressLog.Config();\n            accordProgressLogConfig.concurrency = conf.accord.progress_log_concurrency.or(32);\n            accordProgressLogConfig.maxActiveRunTime = conf.accord.progress_log_query_fallback_timeout.toDuration();\n        }\n        catch (IllegalArgumentException e)\n        {\n            throw new ConfigurationException(\"Invalid accord progress log configuration: \" + e.getMessage(), e);\n        }\n        AccordService.applyProtocolModifiers(getAccord());\n    }\n\n    private static void applyCMS()\n    {\n        try\n        {\n            long initialDelayMs = conf.cms_commit_retry_initial_delay.to(TimeUnit.MILLISECONDS);\n            long maxDelayMs = conf.cms_commit_retry_max_delay.to(TimeUnit.MILLISECONDS);\n            // range of backoff wait time starts at 0ms backing off exponentially at initialDelayMs * 2^attempts\n            String spec = String.format(\"0ms ... %dms * 2^attempts <= %dms\", initialDelayMs, maxDelayMs);\n            logger.debug(\"Initializing cms_commit_retry_strategy from spec: \" + spec);\n            cms_commit_retry_strategy = RetryStrategy.parse(spec,\n                                                            TimeoutStrategy.LatencySourceFactory.none(),\n                                                            RetryStrategy.randomizers.uniform());\n        }\n        catch (Exception e)","sourceCodeStart":1402,"sourceCodeEnd":1438,"githubUrl":"https://github.com/apache/cassandra/blob/88fd0f6a0eaed8943f05ac9e8f947882b8ddc8f1/src/java/org/apache/cassandra/config/DatabaseDescriptor.java#L1402-L1438","documentation":"The Accord progress log configuration (concurrency, maxActiveRunTime) is built into a DefaultProgressLog.Config; IllegalArgumentException from that construction is wrapped into this ConfigurationException so an invalid accord progress_log setup aborts startup with the underlying reason appended.","triggerScenarios":"cassandra.yaml accord section with progress_log_concurrency or progress_log_query_fallback_timeout values that DefaultProgressLog.Config rejects (e.g. concurrency <= 0 or malformed duration), during applyAccord initialization.","commonSituations":"Zero/negative progress_log_concurrency; duration string in wrong format or unit; config carried from an older version where defaults/limits differed; hand-edited accord section with typos.","solutions":["Fix accord.progress_log_concurrency to a positive value (or remove to use the default 32)","Correct accord.progress_log_query_fallback_timeout to a valid duration format","See the wrapped IllegalArgumentException message after the prefix for the exact bad field","Align the accord section with the documented schema for your Cassandra version"],"exampleFix":"// before (cassandra.yaml)\naccord:\n  progress_log_concurrency: 0\n// after\naccord:\n  progress_log_concurrency: 32","handlingStrategy":"try-catch","validationCode":"try {\n    if (conf.accord.progress_log_concurrency.isSet() && conf.accord.progress_log_concurrency.get() <= 0)\n        preflightFail(\"progress_log_concurrency must be positive\");\n} catch (Exception e) { preflightFail(\"accord progress log: \" + e.getMessage()); }","typeGuard":null,"tryCatchPattern":"try { DatabaseDescriptor.daemonInitialization(); } catch (ConfigurationException e) { LOG.error(\"Accord progress log config rejected: \" + e.getMessage()); System.exit(1); }","preventionTips":["Use positive progress_log_concurrency values","Write durations in documented format with unit suffix","Align accord section with current version schema","Validate accord config on staging before rollout"],"tags":["configuration","accord","validation"],"backgroundTag":"invalid-config-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"}