{"record":{"id":"151723068b0009c6","repo":"apache/hadoop","slug":"seqno-expected-received","errorCode":null,"errorMessage":"{}seqno: expected={}, received={}","messagePattern":"(.+?)seqno: expected=(.+?), received=(.+?)","errorType":"exception","errorClass":"IOException","httpStatus":null,"severity":"error","filePath":"hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/BlockReceiver.java","lineNumber":1447,"sourceCode":"                LOG.info(\"Relaying an out of band ack of type \" + oobStatus);\n                sendAckUpstream(ack, PipelineAck.UNKOWN_SEQNO, 0L, 0L,\n                    PipelineAck.combineHeader(datanode.getECN(),\n                      Status.SUCCESS,\n                      datanode.getSLOWByBlockPoolId(block.getBlockPoolId())));\n                continue;\n              }\n              seqno = ack.getSeqno();\n            }\n            if (seqno != PipelineAck.UNKOWN_SEQNO\n                || type == PacketResponderType.LAST_IN_PIPELINE) {\n              pkt = waitForAckHead(seqno);\n              if (!isRunning()) {\n                break;\n              }\n              expected = pkt.seqno;\n              if (type == PacketResponderType.HAS_DOWNSTREAM_IN_PIPELINE\n                  && seqno != expected) {\n                throw new IOException(myString + \"seqno: expected=\" + expected\n                    + \", received=\" + seqno);\n              }\n              if (type == PacketResponderType.HAS_DOWNSTREAM_IN_PIPELINE) {\n                // The total ack time includes the ack times of downstream\n                // nodes.\n                // The value is 0 if this responder doesn't have a downstream\n                // DN in the pipeline.\n                totalAckTimeNanos = ackRecvNanoTime - pkt.ackEnqueueNanoTime;\n                // Report the elapsed time from ack send to ack receive minus\n                // the downstream ack time.\n                long ackTimeNanos = totalAckTimeNanos\n                    - ack.getDownstreamAckTimeNanos();\n                if (ackTimeNanos < 0) {\n                  if (LOG.isDebugEnabled()) {\n                    LOG.debug(\"Calculated invalid ack time: \" + ackTimeNanos\n                        + \"ns.\");\n                  }\n                } else {","sourceCodeStart":1429,"sourceCodeEnd":1465,"githubUrl":"https://github.com/apache/hadoop/blob/2add9630210752f88ceb1bb74eb65e37bf41da8e/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/BlockReceiver.java#L1429-L1465","documentation":"Error \"{}seqno: expected={}, received={}\" thrown in apache/hadoop.","triggerScenarios":"The sequence number of a received packet does not match the expected next sequence number in the write pipeline.","commonSituations":"Packet sequence numbers did not match on the pipeline, indicating lost or duplicated packets. Check network reliability and client retry behavior.","solutions":["Check network ordering/loss between the sender and this DataNode; a seqno mismatch means a packet was dropped or duplicated in transit.","Verify client and DataNode protocol versions match; mismatched seqno tracking is a protocol error."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"2add9630210752f88ceb1bb74eb65e37bf41da8e","analyzedAt":"2026-08-22T19:55:07.957Z","schemaVersion":2},"datasetVersion":"2026-08-22T20:17:22.307Z"}