apache/cassandra · error · IllegalArgumentException
No transformation sequence is in progress for ${nodeIpOrId}.
Error message
No transformation sequence is in progress for ${nodeIpOrId}. What it means
Thrown by CMSOfflineTool.execute() when the requested node has no in-progress multi-step operation (bootstrap/replace/decommission etc.) in the metadata dump. The offline 'abort/cancel transformation sequence' operation needs an active sequence to act on.
Source
Thrown at src/java/org/apache/cassandra/tools/CMSOfflineTool.java:258
String outputFilePath;
protected abstract EnumSet<MultiStepOperation.Kind> supportedKinds();
protected ClusterMetadata postCancel(ClusterMetadata metadata, NodeId nodeId)
{
return metadata;
}
@Override
protected void execute(Output output) throws IOException
{
ClusterMetadata metadata = parseClusterMetadata();
NodeId nodeId = nodeIdentifierOption.getNodeId(metadata);
MultiStepOperation<?> multiStepOperation = metadata.inProgressSequences.get(nodeId);
if (multiStepOperation == null)
{
throw new IllegalArgumentException("No transformation sequence is in progress for " +
nodeIdentifierOption.getNodeIpOrId() + '.');
}
if (!supportedKinds().contains(multiStepOperation.kind()))
{
throw new IllegalArgumentException("Sequence of kind " + multiStepOperation.kind() +
" is in progress for node " + nodeIdentifierOption.getNodeIpOrId() +
". Cannot proceed with this operation.");
}
CancelInProgressSequence cancelSequence = new CancelInProgressSequence(nodeId);
ClusterMetadata updatedMetadata = cancelSequence.execute(metadata).success().metadata;
updatedMetadata = postCancel(updatedMetadata, nodeId);
writeMetadata(output, updatedMetadata, outputFilePath);
}
}
/**View on GitHub (pinned to 88fd0f6a0e)
Solutions
- Confirm the node actually has an in-progress sequence (inspect the dump / cms show)
- Verify the node identifier (IP or id) refers to the intended node
- No action needed if the sequence already finished — the operation is a no-op case
Example fix
# before cms offline abort-sequence --id 10.0.0.5 # no sequence in progress # after: check first, then target the right node cms offline show-sequence --id 10.0.0.6 # node that actually has an in-progress bootstrap
Defensive patterns
Strategy: validation
Validate before calling
NodeId nodeId = nodeIdentifierOption.getNodeId(metadata);
if (!metadata.inProgressSequences.containsKey(nodeId)) { /* nothing to abort; skip or correct the id */ } Try / catch
try { tool.execute(); } catch (IllegalArgumentException e) { if (e.getMessage().startsWith("No transformation sequence is in progress")) { /* verify node id / no-op case */ } else throw e; } Prevention
- List in-progress sequences in the dump before running abort operations
- Double-check the node id/IP argument against the dump contents
- Treat this error as informational when the sequence already completed
When it happens
Trigger: Running an offline sequence-abort command (e.g. cms offline abort-sequence) for a node whose metadata.inProgressSequences.get(nodeId) is null — the node has no running transformation sequence.
Common situations: Aborting a bootstrap that already completed or was never started; using the wrong node id/IP; sequence already aborted in a previous run.
Understand the failure class
Background: 'Could not be found', 'does not exist', 'not found in database': the resource-not-found family when an ID, slug, key, or URI lookup comes back empty — this error's family across 20 libraries.
Related errors
- Cluster metadata dump file %s does not exist.
- No node present with id ${id} in the given cluster metadata.
- No node present with ip address ${ip} in given cluster metad
- Cannot specify a repair as both paxos only and accord only
- Too many job threads. Max is %s
AI-assisted analysis of apache/cassandra@88fd0f6a0e (2026-09-10).
Data as JSON: /api/errors/84d15b9bbdcfcc81.
Report an issue: GitHub.