{"record":{"id":"c9cc25968872f3b0","repo":"apache/hadoop","slug":"unexpected-version-of-data-node-reported-exp","errorCode":null,"errorMessage":"Unexpected version of data node. Reported: {}. Expecting = {}.","messagePattern":"Unexpected version of data node\\. Reported: (.+?)\\. Expecting = (.+?)\\.","errorType":"exception","errorClass":"IncorrectVersionException","httpStatus":null,"severity":"error","filePath":"hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/NameNodeRpcServer.java","lineNumber":1899,"sourceCode":"    nn.checkHaStateChange(req);\n    nn.transitionToObserver();\n  }\n\n  @Override // HAServiceProtocol\n  public synchronized HAServiceStatus getServiceStatus() \n      throws AccessControlException, ServiceFailedException, IOException {\n    checkNNStartup();\n    return nn.getServiceStatus();\n  }\n\n  /**\n   * Verify version.\n   * @param version layout version\n   * @throws IOException on layout version mismatch\n   */\n  void verifyLayoutVersion(int version) throws IOException {\n    if (version != HdfsServerConstants.NAMENODE_LAYOUT_VERSION)\n      throw new IncorrectVersionException(\n          HdfsServerConstants.NAMENODE_LAYOUT_VERSION, version, \"data node\");\n  }\n  \n  private void verifySoftwareVersion(DatanodeRegistration dnReg)\n      throws IncorrectVersionException {\n    String dnVersion = dnReg.getSoftwareVersion();\n    if (VersionUtil.compareVersions(dnVersion, minimumDataNodeVersion) < 0) {\n      IncorrectVersionException ive = new IncorrectVersionException(\n          minimumDataNodeVersion, dnVersion, \"DataNode\", \"NameNode\");\n      LOG.warn(ive.getMessage() + \" DN: \" + dnReg);\n      throw ive;\n    }\n    String nnVersion = VersionInfo.getVersion();\n    if (!dnVersion.equals(nnVersion)) {\n      String messagePrefix = \"Reported DataNode version '\" + dnVersion +\n          \"' of DN \" + dnReg + \" does not match NameNode version '\" +\n          nnVersion + \"'\";\n      long nnCTime = nn.getFSImage().getStorage().getCTime();","sourceCodeStart":1881,"sourceCodeEnd":1917,"githubUrl":"https://github.com/apache/hadoop/blob/2add9630210752f88ceb1bb74eb65e37bf41da8e/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/NameNodeRpcServer.java#L1881-L1917","documentation":"Error \"Unexpected version of data node. Reported: {}. Expecting = {}.\" thrown in apache/hadoop.","triggerScenarios":"A DataNode registers or heartbeats with a software/layout version the NameNode does not accept.","commonSituations":"Mixing DataNode and NameNode versions during a partial or failed rolling upgrade.","solutions":["Upgrade or downgrade the DataNode to a version compatible with the NameNode's expected version."],"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"}