hyperledger/fabric · error
unknown message type: %T, message: %+v
Error message
unknown message type: %T, message: %+v
What it means
The deliver response carried a message type the receiver has no case for (neither Status nor Block): an unknown or newer DeliverResponse variant, indicating a protobuf/protocol version mismatch with the orderer.
Source
Thrown at common/deliverclient/blocksprovider/block_receiver.go:171
configEnv, err := deliverclient.ConfigFromBlock(t.Block)
if err != nil {
return 0, nil, errors.WithMessagef(err, "failed to extract channel-config from config block [%d] from orderer [%s]", blockNum, br.endpoint.String())
}
channelConfig = configEnv.GetConfig()
br.logger.Debugf("channel config: %+v", channelConfig)
if err := br.updatableBlockVerifier.UpdateConfig(t.Block); err != nil {
return 0, nil, errors.WithMessagef(err, "config block [%d] from orderer [%s] failed to update block verifier", blockNum, br.endpoint.String())
}
br.logger.Infof("Updated config block %d", blockNum)
}
br.updatableBlockVerifier.UpdateBlockHeader(t.Block)
return blockNum, channelConfig, nil
default:
return 0, nil, errors.Errorf("unknown message type: %T, message: %+v", t, msg)
}
}
View on GitHub (pinned to 2736b63f8f)
Solutions
- Align peer/deliverclient and orderer Fabric versions
- Reconnect to an orderer running a compatible protos package
Defensive patterns
Strategy: fallback
When it happens
Trigger: Thrown at common/deliverclient/blocksprovider/block_receiver.go:171 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/efe46f1ae3ba3588.
Report an issue: GitHub.