apache/cassandra · error

- MISMATCH Query =

Error message

{} - MISMATCH Query = {} 

What it means

ResultComparator.handleMismatch in fqltool detected that rows returned for the same FQL query differ across compared clusters (e.g. in a migration/upgrade comparison run). The mismatch details are logged with a random UUID that is also passed to the mismatch listener for result dumps.

Solutions

  1. Inspect the saved result files referenced by the mismatch UUID to find the differing rows.
  2. Investigate schema/version differences or data drift between the compared clusters.
  3. Re-run repair or fix the divergent data on the target cluster.
Defensive patterns

Strategy: fallback

When it happens

Trigger: Thrown at tools/fqltool/src/org/apache/cassandra/fqltool/ResultComparator.java:104 when the library encounters an invalid state.

Common situations: See trigger scenarios.


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

Appendix: source

Thrown at tools/fqltool/src/org/apache/cassandra/fqltool/ResultComparator.java:104

            if (!refDefs.equals(toCompare))
                equal = false;
        }
        if (!equal)
            handleColumnDefMismatch(targetHosts, query, cds);
        return equal;
    }

    private void handleMismatch(List<String> targetHosts, FQLQuery query, List<ResultHandler.ComparableRow> rows)
    {
        UUID mismatchUUID = UUID.randomUUID();
        StringBuilder sb = new StringBuilder("{} - MISMATCH Query = {} ");
        for (int i = 0; i < targetHosts.size(); i++)
            sb.append("mismatch").append(i)
              .append('=')
              .append('"').append(targetHosts.get(i)).append(':').append(rows.get(i)).append('"')
              .append(',');

        logger.warn(sb.toString(), mismatchUUID, query);
        try
        {
            if (mismatchListener != null)
                mismatchListener.mismatch(mismatchUUID, targetHosts, query, rows);
        }
        catch (Throwable t)
        {
            logger.error("ERROR notifying listener", t);
        }
    }

    private void handleColumnDefMismatch(List<String> targetHosts, FQLQuery query, List<ResultHandler.ComparableColumnDefinitions> cds)
    {
        UUID mismatchUUID = UUID.randomUUID();
        StringBuilder sb = new StringBuilder("{} - COLUMN DEFINITION MISMATCH Query = {} ");
        for (int i = 0; i < targetHosts.size(); i++)
            sb.append("mismatch").append(i)
              .append('=')

View on GitHub (pinned to 88fd0f6a0e)