hyperledger/fabric · error

failed fetching signing identity

Error message

failed fetching signing identity

What it means

The default endorsement plugin's Endorse tried to obtain the peer's signing identity via the SigningIdentityFetcher and failed — the local MSP identity could not be loaded, so no endorsement signature can be produced.

Source

Thrown at core/handlers/endorsement/builtin/default_endorsement.go:38

// New returns an endorsement plugin that behaves as the default endorsement system chaincode
func (*DefaultEndorsementFactory) New() endorsement.Plugin {
	return &DefaultEndorsement{}
}

// DefaultEndorsement is an endorsement plugin that behaves as the default endorsement system chaincode
type DefaultEndorsement struct {
	identities.SigningIdentityFetcher
}

// Endorse signs the given payload(ProposalResponsePayload bytes), and optionally mutates it.
// Returns:
// The Endorsement: A signature over the payload, and an identity that is used to verify the signature
// The payload that was given as input (could be modified within this function)
// Or error on failure
func (e *DefaultEndorsement) Endorse(prpBytes []byte, sp *peer.SignedProposal) (*peer.Endorsement, []byte, error) {
	signer, err := e.SigningIdentityForRequest(sp)
	if err != nil {
		return nil, nil, errors.Wrap(err, "failed fetching signing identity")
	}
	// serialize the signing identity
	identityBytes, err := signer.Serialize()
	if err != nil {
		return nil, nil, errors.Wrapf(err, "could not serialize the signing identity")
	}

	// sign the concatenation of the proposal response and the serialized endorser identity with this endorser's key
	signature, err := signer.Sign(append(prpBytes, identityBytes...))
	if err != nil {
		return nil, nil, errors.Wrapf(err, "could not sign the proposal response payload")
	}
	endorsement := &peer.Endorsement{Signature: signature, Endorser: identityBytes}
	return endorsement, prpBytes, nil
}

// Init injects dependencies into the instance of the Plugin
func (e *DefaultEndorsement) Init(dependencies ...endorsement.Dependency) error {

View on GitHub (pinned to 2736b63f8f)

Solutions

  1. Verify the peer's local MSP configuration and signing certificate
  2. Check peer MSP setup logs for the underlying identity load error
  3. Restart the peer after fixing MSP material
Defensive patterns

Strategy: retry

When it happens

Trigger: Thrown at core/handlers/endorsement/builtin/default_endorsement.go:38 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/bae7ac53a151c642. Report an issue: GitHub.