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

  1. Read the logged message for the commit failure code and address the underlying CMS condition.
  2. Retry cancelInProgressSequences once cluster metadata is stable (quorum of CMS replicas healthy).
  3. Check 'nodetool cms' / cluster metadata health; ensure the node is not mid-reconfiguration.
  4. 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

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


AI-assisted analysis of apache/cassandra@88fd0f6a0e (2026-09-10). Data as JSON: /api/errors/c81da6e8467baad8. Report an issue: GitHub.