{"record":{"id":"f6f1fc41f9f36d4f","repo":"apache/hadoop","slug":"client-generated-spurious-response","errorCode":null,"errorMessage":"Client generated spurious response","messagePattern":"Client generated spurious response","errorType":"exception","errorClass":"SaslException","httpStatus":null,"severity":"error","filePath":"hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/security/SaslRpcClient.java","lineNumber":501,"sourceCode":"   */\n  private byte[] saslEvaluateToken(RpcSaslProto saslResponse,\n      boolean serverIsDone) throws SaslException {\n    byte[] saslToken = null;\n    if (saslResponse.hasToken()) {\n      saslToken = saslResponse.getToken().toByteArray();\n      saslToken = saslClient.evaluateChallenge(saslToken);\n    } else if (!serverIsDone) {\n      // the server may only omit a token when it's done\n      throw new SaslException(\"Server challenge contains no token\");\n    }\n    if (serverIsDone) {\n      // server tried to report success before our client completed\n      if (!saslClient.isComplete()) {\n        throw new SaslException(\"Client is out of sync with server\");\n      }\n      // a client cannot generate a response to a success message\n      if (saslToken != null) {\n        throw new SaslException(\"Client generated spurious response\");        \n      }\n    }\n    return saslToken;\n  }\n\n  private RpcSaslProto.Builder createSaslReply(SaslState state,\n                                               byte[] responseToken) {\n    RpcSaslProto.Builder response = RpcSaslProto.newBuilder();\n    response.setState(state);\n    if (responseToken != null) {\n      response.setToken(ByteString.copyFrom(responseToken));\n    }\n    return response;\n  }\n\n  private boolean useWrap() {\n    // getNegotiatedProperty throws if client isn't complete\n    String qop = (String) saslClient.getNegotiatedProperty(Sasl.QOP);","sourceCodeStart":483,"sourceCodeEnd":519,"githubUrl":"https://github.com/apache/hadoop/blob/2add9630210752f88ceb1bb74eb65e37bf41da8e/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/security/SaslRpcClient.java#L483-L519","documentation":"Error \"Client generated spurious response\" thrown in apache/hadoop.","triggerScenarios":"Thrown at hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/security/SaslRpcClient.java:501 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["This indicates a client-side SASL state error; upgrade the client to a fixed Hadoop version if running an old release.","Retry the operation after resetting the connection.","Check for concurrent use of the same connection from multiple threads."],"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"}