{"record":{"id":"e0185d02bde431b0","repo":"hashicorp/nomad","slug":"empty-signed-identity-response","errorCode":null,"errorMessage":"empty signed identity response","messagePattern":"empty signed identity response","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"client/widmgr/signer.go","lineNumber":118,"sourceCode":"\tif n := len(reply.Rejections); n == 1 {\n\t\treturn nil, fmt.Errorf(\n\t\t\t\"%d/%d signing request was rejected: %v\",\n\t\t\tn, len(req), reply.Rejections[0].Reason,\n\t\t)\n\t} else if n > 1 {\n\t\tvar mErr *multierror.Error\n\t\tfor _, r := range reply.Rejections {\n\t\t\tmErr = multierror.Append(\n\t\t\t\tfmt.Errorf(\n\t\t\t\t\t\"%d/%d signing request was rejected: %v\",\n\t\t\t\t\tn, len(req), r.Reason,\n\t\t\t\t))\n\t\t}\n\t\treturn nil, mErr\n\t}\n\n\tif len(reply.SignedIdentities) == 0 {\n\t\treturn nil, fmt.Errorf(\"empty signed identity response\")\n\t}\n\n\tif exp, act := len(reply.SignedIdentities), len(req); exp != act {\n\t\treturn nil, fmt.Errorf(\"expected %d signed identities but received %d\", exp, act)\n\t}\n\n\treturn reply.SignedIdentities, nil\n}\n","sourceCodeStart":100,"sourceCodeEnd":127,"githubUrl":"https://github.com/hashicorp/nomad/blob/482b49bf1aec006f089bcfc7e632d8f6ac303e5e/client/widmgr/signer.go#L100-L127","documentation":"If the RPC neither returned errors nor rejections but reply.SignedIdentities is empty, SignIdentities treats the response as malformed and errors with this message. It guards against a server silently returning an empty success.","triggerScenarios":"Alloc.SignIdentities returns successfully but with zero signed identities — an empty-success response from a buggy/misbehaving server or an intermediary dropping the payload.","commonSituations":"Server-side bug or version mismatch where the handler returns an empty response; corrupted RPC reply; test doubles returning an empty AllocIdentitiesResponse.","solutions":["Retry the signing request; a transient empty reply may succeed.","Check server logs for the Alloc.SignIdentities handler for signs of a bug or version skew.","Ensure client and server Nomad versions are compatible.","Report/pin down the server version producing empty responses; upgrade or downgrade accordingly."],"exampleFix":null,"handlingStrategy":"retry","validationCode":null,"typeGuard":null,"tryCatchPattern":"signed, err := signer.SignIdentities(minIndex, reqs)\nif err != nil {\n    if strings.Contains(err.Error(), \"empty signed identity response\") {\n        // transient/malformed reply: backoff and retry once\n        time.Sleep(retryDelay)\n        return signer.SignIdentities(minIndex, reqs)\n    }\n    return err\n}","preventionTips":["Verify server health before signing requests","Pin compatible Nomad versions","Report persistent empty replies as a server bug"],"tags":["workload-identity","rpc","empty-response","nomad"],"backgroundTag":"empty-error-response","analyzedSha":"482b49bf1aec006f089bcfc7e632d8f6ac303e5e","analyzedAt":"2026-09-04T07:54:14.808Z","contentChangedAt":"2026-09-04T07:54:14.808Z","schemaVersion":2},"datasetVersion":"2026-09-08T10:18:20.063Z"}