apache/cassandra · error
has dropped hints, because node is down past configured…
Error message
{} has {} dropped hints, because node is down past configured hint window. What it means
HintedHandoffMetrics.log warns, once per logged interval, that hints destined for a node were discarded because the node was down longer than max_hint_window_in_ms. The data those hints would have carried must be repaired by other means.
Solutions
- Run repair (e.g. nodetool repair) on the affected ranges to restore consistency.
- Increase max_hint_window_in_ms if long planned outages should keep hints.
- Investigate why the endpoint was down past the hint window.
Defensive patterns
Strategy: fallback
When it happens
Trigger: Thrown at src/java/org/apache/cassandra/metrics/HintedHandoffMetrics.java:73 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/209b2e03bf62fc55.
Report an issue: GitHub.
Appendix: source
Thrown at src/java/org/apache/cassandra/metrics/HintedHandoffMetrics.java:73
public void incrCreatedHints(InetAddressAndPort address)
{
createdHintCounts.get(address).inc();
}
public void incrPastWindow(InetAddressAndPort address)
{
notStored.get(address).mark();
}
public void log()
{
for (Entry<InetAddressAndPort, DifferencingCounter> entry : notStored.asMap().entrySet())
{
long difference = entry.getValue().difference();
if (difference == 0)
continue;
logger.warn("{} has {} dropped hints, because node is down past configured hint window.", entry.getKey(), difference);
SystemKeyspace.updateHintsDropped(entry.getKey(), nextTimeUUID(), (int) difference);
}
}
public static class DifferencingCounter
{
private final Counter meter;
private long reported = 0;
public DifferencingCounter(InetAddressAndPort address)
{
//This changes the name of the metric, people can update their monitoring when upgrading?
this.meter = Metrics.counter(factory.createMetricName("Hints_not_stored-" + address.toString().replace(':', '.')));
}
public long difference()
{
long current = meter.getCount();View on GitHub (pinned to 88fd0f6a0e)