hyperledger/fabric · error
expected QueryResult of either PeerMembershipResult or Error
Error message
expected QueryResult of either PeerMembershipResult or Error but got %v instead
What it means
mapPeerMembership indexed a discovery response result that is neither a PeerMembershipResult nor an Error — an unexpected QueryResult variant for a membership query, usually a client/peer version mismatch.
Source
Thrown at discovery/client/client.go:389
queryType: protoext.ConfigQueryType,
k: ch,
}
if err != nil {
resp[key] = errors.New(err.Content)
continue
}
resp[key] = config
}
return nil
}
func (resp response) mapPeerMembership(key2Index map[string]int, r *discovery.Response, qt protoext.QueryType) error {
for k, index := range key2Index {
membersRes, err := protoext.ResponseMembershipAt(r, index)
if membersRes == nil && err == nil {
return errors.Errorf("expected QueryResult of either PeerMembershipResult or Error but got %v instead", r.Results[index])
}
key := key{
queryType: qt,
k: k,
}
if err != nil {
resp[key] = errors.New(err.Content)
continue
}
peers, err2 := peersForChannel(membersRes, qt)
if err2 != nil {
return errors.Wrap(err2, "failed constructing peer membership out of response")
}
resp[key] = peersView on GitHub (pinned to 2736b63f8f)
Solutions
- Align discovery client and peer versions
- Handle the unexpected result type explicitly
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at discovery/client/client.go:389 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of hyperledger/fabric@2736b63f8f (2026-09-04).
Data as JSON: /api/errors/b566e52a3c598221.
Report an issue: GitHub.