hyperledger/fabric · error

%s is not supported

Error message

%s is not supported

What it means

validateIdentity guard: the identity certificate's public key algorithm is not in msp.supportedPublicKeyAlgorithms (this build registers only ECDSA). The message names the algorithm (e.g. RSA) and the error is cached on the identity and logged with subject/issuer/serial for traceability.

Source

Thrown at msp/mspimplvalidate.go:33

	"reflect"
	"time"

	"github.com/pkg/errors"
)

func (msp *bccspmsp) validateIdentity(id *identity) error {
	id.validationMutex.Lock()
	defer id.validationMutex.Unlock()

	// return cached validation value if already validated
	if id.validated {
		return id.validationErr
	}

	id.validated = true

	if !msp.supportedPublicKeyAlgorithms[id.cert.PublicKeyAlgorithm] {
		err := errors.Errorf("%s is not supported", id.cert.PublicKeyAlgorithm.String())
		id.validationErr = errors.WithMessage(err, "could not validate identity's public key algorithm")
		mspLogger.Warnf("Could not validate identity: %s (certificate subject=%s issuer=%s serialnumber=%d) Unsupported public key algorithm: %s", id.validationErr, id.cert.Subject.CommonName, id.cert.Issuer.CommonName, id.cert.SerialNumber, id.cert.PublicKeyAlgorithm)
		return id.validationErr
	}

	validationChain, err := msp.getCertificationChainForBCCSPIdentity(id)
	if err != nil {
		id.validationErr = errors.WithMessage(err, "could not obtain certification chain")
		mspLogger.Warnf("Could not validate identity: %s (certificate subject=%s issuer=%s serialnumber=%d)", id.validationErr, id.cert.Subject, id.cert.Issuer, id.cert.SerialNumber)
		return id.validationErr
	}

	err = msp.validateIdentityAgainstChain(id, validationChain)
	if err != nil {
		id.validationErr = errors.WithMessage(err, "could not validate identity against certification chain")
		mspLogger.Warnf("Could not validate identity: %s (certificate subject=%s issuer=%s serialnumber=%d)", id.validationErr, id.cert.Subject, id.cert.Issuer, id.cert.SerialNumber)
		return id.validationErr
	}

View on GitHub (pinned to 2736b63f8f)

Solutions

  1. Reissue identities with ECDSA certificates, the only supported algorithm
  2. Check for a binary built with restricted algorithm support
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at msp/mspimplvalidate.go:33 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/f4607d849d4cf902. Report an issue: GitHub.