hyperledger/fabric · error

Empty payload

Error message

Empty payload

What it means

Guard in SignedGossipMessage.Verify: the envelope exists but its Payload byte slice is empty, so there is no signed content to verify. A zero-length payload means the envelope was created incorrectly or truncated.

Source

Thrown at gossip/protoext/signing.go:133

	}

	e := &gossip.Envelope{
		Payload:        payload,
		Signature:      sig,
		SecretEnvelope: secretEnvelope,
	}
	m.Envelope = e
	return e, nil
}

// Verify verifies a signed GossipMessage with a given Verifier.
// Returns nil on success, error on failure.
func (m *SignedGossipMessage) Verify(peerIdentity []byte, verify Verifier) error {
	if m.Envelope == nil {
		return errors.New("Missing envelope")
	}
	if len(m.Envelope.Payload) == 0 {
		return errors.New("Empty payload")
	}
	if len(m.Envelope.Signature) == 0 {
		return errors.New("Empty signature")
	}
	payloadSigVerificationErr := verify(peerIdentity, m.Envelope.Signature, m.Envelope.Payload)
	if payloadSigVerificationErr != nil {
		return payloadSigVerificationErr
	}
	if m.Envelope.SecretEnvelope != nil {
		payload := m.Envelope.SecretEnvelope.Payload
		sig := m.Envelope.SecretEnvelope.Signature
		if len(payload) == 0 {
			return errors.New("Empty payload")
		}
		if len(sig) == 0 {
			return errors.New("Empty signature")
		}
		return verify(peerIdentity, sig, payload)

View on GitHub (pinned to 2736b63f8f)

Solutions

  1. Reject envelopes with empty payloads at ingestion time (EnvelopeToGossipMessage callers) before reaching Verify
  2. Ensure message producers marshal the GossipMessage into the envelope payload before signing
  3. Log and drop the offending message rather than treating it as a verification failure of a peer's identity
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at gossip/protoext/signing.go:133 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/9b5582a43d89e205. Report an issue: GitHub.