apache/cassandra · warning
No response from
Error message
No response from %s
What it means
RemoteToLocalVirtualTable.collect() issues a read to a remote node; if the round-trip returns no ReadResponse before its deadline, it warns 'No response from <node>' and skips that node's data rather than failing the whole virtual-table query. The message names the unreachable/slow node (rr.nodeId).
Solutions
- Check nodetool status / gossip to see if the node named in the warning is UP.
- Retry the query once the reported node recovers or load drops below the timeout threshold.
- Investigate the named node's logs, GC pauses, and network connectivity (nodetool netstats, tpstats).
- Treat returned data as incomplete for that node; re-run to assemble full results.
Defensive patterns
Strategy: retry
Validate before calling
// confirm the cluster is healthy before querying remote-fed virtual tables
boolean allUp = session.execute("SELECT status FROM system_views.peers").all()
.stream().allMatch(r -> "UP".equals(r.getString("status"))); Prevention
- Check nodetool status before querying remote-fed virtual tables.
- Retry queries that warn 'No response from <node>' after the node recovers.
- Monitor node GC/load to keep response times under the internal timeout.
When it happens
Trigger: A SELECT on the remote-fed virtual table where rr.getNow() returns null for a peer: the peer did not reply within the internal timeout (InternalTimeoutException thrown just above) or was unreachable/overloaded while not failing outright.
Common situations: One node of the cluster is down, network-partitioned, GC-thrashing, or heavily loaded; querying the virtual table from the coordinator while a replica is slow; mixed-version clusters where a peer doesn't answer the internal request.
Understand the failure class
Background: Request timed out: what client-side request timeouts mean across libraries (Request timed out, TIMED_OUT, APITimeoutError) — this error's family across 39 libraries.
Related errors
- Could not discover CMS from
- Could not fetch log entries from peer, remote =
- Ran out of time. Returning best effort.
- timeout
- Addresses differ: !=
AI-assisted analysis of apache/cassandra@88fd0f6a0e (2026-09-10).
Data as JSON: /api/errors/e95b9f59f03173fb.
Report an issue: GitHub.
Appendix: source
Thrown at src/java/org/apache/cassandra/db/virtual/RemoteToLocalVirtualTable.java:289
{
if (failure.failure == null) promise.tryFailure(new RuntimeException(failure.reason.toString()));
else promise.tryFailure(failure.failure);
}
};
MessagingService.instance().sendWithCallback(message, endpoint, callback);
}
private void collect(PartitionsCollector collector, RequestAndResponse rr, Function<DecoratedKey, ByteBuffer[]> pksToCks)
{
if (!rr.awaitUntilThrowUncheckedOnInterrupt(collector.deadlineNanos()))
throw new InternalTimeoutException();
rr.rethrowIfFailed();
ReadResponse response = rr.getNow();
if (response == null)
{
ClientWarn.instance.warn("No response from " + rr.nodeId);
return;
}
int pkCount = local.partitionKeyColumns().size();
PartitionCollector out = rr.partitions.partition(rr.nodeId.id());
try (UnfilteredPartitionIterator partitions = response.makeIterator(rr.readCommand))
{
while (partitions.hasNext())
{
try (UnfilteredRowIterator iter = partitions.next())
{
ByteBuffer[] clusterings = pksToCks.apply(iter.partitionKey());
while (iter.hasNext())
{
Unfiltered next = iter.next();
if (!next.isRow())
throw new UnsupportedOperationException("Range tombstones not supported");
View on GitHub (pinned to 88fd0f6a0e)