apache/cassandra · warning
Could not cancel in-progress sequence: %s
Error message
Could not cancel in-progress sequence: %s
What it means
WARN inside StorageService.cancelInProgressSequences(): the CancelInProgressSequence cluster-metadata commit failed, and the supplied failure callback logs that the in-progress sequence (owned by sequenceOwner NodeId) could not be cancelled, then returns false. This is part of the Accord/ClusterMetadataService transaction path — a rejected or failed metadata commit means the sequence may still be running.
Source
Thrown at src/java/org/apache/cassandra/service/StorageService.java:897
throw new RuntimeException("Could not perform startup sequence and join cluster", e);
}
maybeInitializeServices();
completeInitialization();
}
private void completeInitialization()
{
initialized = true;
}
public static boolean cancelInProgressSequences(NodeId sequenceOwner)
{
return ClusterMetadataService.instance()
.commit(new CancelInProgressSequence(sequenceOwner),
metadata -> true,
(code, message) -> {
logger.warn(String.format("Could not cancel in-progress sequence: %s", message));
return false;
});
}
private boolean servicesInitialized = false;
public void maybeInitializeServices()
{
if (servicesInitialized)
return;
StorageProxy.instance.initialLoadPartitionDenylist();
LoadBroadcaster.instance.startBroadcasting();
DiskUsageBroadcaster.instance.startBroadcasting();
HintsService.instance.startDispatch();
BatchlogManager.instance.start();
servicesInitialized = true;
}
View on GitHub (pinned to 88fd0f6a0e)
Solutions
- Read the logged message for the commit failure code and address the underlying CMS condition.
- Retry cancelInProgressSequences once cluster metadata is stable (quorum of CMS replicas healthy).
- Check 'nodetool cms' / cluster metadata health; ensure the node is not mid-reconfiguration.
- If the sequence owner is being removed, complete the removal procedure (assassinate/replace per runbook) which supersedes the sequence.
Defensive patterns
Strategy: retry
Validate before calling
// ensure CMS is available before attempting cancel boolean cmsReady = ClusterMetadataService.instance().isSetup();
Try / catch
boolean cancelled = cancelInProgressSequences(nodeId);
if (!cancelled) { /* sequence still active: inspect logged failure message and retry after cluster metadata stabilizes */ } Prevention
- Verify CMS quorum health before metadata commits.
- Avoid concurrent node operations (decommission/replace overlapping).
- Confirm the node actually owns an active sequence before cancelling.
When it happens
Trigger: cancelInProgressSequences(nodeId) invoked (e.g. during node removal/replacement) and ClusterMetadataService.commit calls back with (code, message) indicating the commit was rejected or failed.
Common situations: Accord coordination sequences still active for the target node during decommission/replace; CMS not yet ready or a concurrent metadata change conflicting; retrying cancel for a node with no active sequence.
Understand the failure class
Background: Conflicting config options: "cannot be used together" — configuration validation errors across open-source libraries — this error's family across 162 libraries.
Related errors
- accord.journal_directory must not be the same as any data_fi
- accord.cache_size option was set incorrectly to '<value>', s
- metadata + " currently only supports querying single partiti
- Unknown keyspace: '" + keyspaceName + "'
- Cannot update '" + name + "'
AI-assisted analysis of apache/cassandra@88fd0f6a0e (2026-09-10).
Data as JSON: /api/errors/c81da6e8467baad8.
Report an issue: GitHub.