apache/hadoop · error · IOException
Unsupported stage {} while receiving block {} from {}
Error message
Unsupported stage {} while receiving block {} from {} What it means
Error "Unsupported stage {} while receiving block {} from {}" thrown in apache/hadoop.
Source
Thrown at hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/BlockReceiver.java:252
case PIPELINE_SETUP_APPEND:
replicaHandler = datanode.data.append(block, newGs, minBytesRcvd);
block.setGenerationStamp(newGs);
datanode.notifyNamenodeReceivingBlock(
block, replicaHandler.getReplica().getStorageUuid());
break;
case PIPELINE_SETUP_APPEND_RECOVERY:
replicaHandler = datanode.data.recoverAppend(block, newGs, minBytesRcvd);
block.setGenerationStamp(newGs);
datanode.notifyNamenodeReceivingBlock(
block, replicaHandler.getReplica().getStorageUuid());
break;
case TRANSFER_RBW:
case TRANSFER_FINALIZED:
// this is a transfer destination
replicaHandler = datanode.data.createTemporary(storageType, storageId,
block, isTransfer);
break;
default: throw new IOException("Unsupported stage " + stage +
" while receiving block " + block + " from " + inAddr);
}
}
replicaInfo = replicaHandler.getReplica();
this.dropCacheBehindWrites = (cachingStrategy.getDropBehind() == null) ?
datanode.getDnConf().dropCacheBehindWrites :
cachingStrategy.getDropBehind();
this.syncBehindWrites = datanode.getDnConf().syncBehindWrites;
this.syncBehindWritesInBackground = datanode.getDnConf().
syncBehindWritesInBackground;
final boolean isCreate = isDatanode || isTransfer
|| stage == BlockConstructionStage.PIPELINE_SETUP_CREATE;
streams = replicaInfo.createStreams(isCreate, requestedChecksum);
assert streams != null : "null streams!";
// read checksum meta information
this.clientChecksum = requestedChecksum;View on GitHub (pinned to 2add963021)
Solutions
- Ensure the client and DataNode run compatible Hadoop versions so the pipeline stage (PIPELINE_SETUP_CREATE, TRANSFER_RBW, etc.) is recognized by the receiver.
- Check for network corruption or non-HDFS traffic hitting the DataNode streaming port; the op code must match a known BlockConstructionStage.
When it happens
Trigger: A client (or upstream DataNode in a write pipeline) sends a block write request with a stage value the receiver does not recognize, typically due to version mismatch or corrupted protocol data.
Common situations: A client or upstream DataNode sent a pipeline packet with a stage the receiver does not support. Prevent by keeping client and DataNode versions compatible during rolling upgrades.
AI-assisted analysis of apache/hadoop@2add963021 (2026-08-22).
Data as JSON: /api/errors/27b134637c6b42a7.
Report an issue: GitHub.