hyperledger/fabric · error

Invalid *BCCSPNewOpts. Version not recognized [%v]

Error message

Invalid *BCCSPNewOpts. Version not recognized [%v]

What it means

Returned by msp.New when the opts are *BCCSPNewOpts but the requested MSP version is not one of the recognized versions. The factory cannot select a constructor for that version of the X509/BCCSP MSP.

Source

Thrown at msp/factory.go:58

// BCCSPNewOpts contains the options to instantiate a new BCCSP-based (X509) MSP
type BCCSPNewOpts struct {
	NewBaseOpts
}

// IdemixNewOpts contains the options to instantiate a new Idemix-based MSP
type IdemixNewOpts struct {
	NewBaseOpts
}

// New create a new MSP instance depending on the passed Opts
func New(opts NewOpts, cryptoProvider bccsp.BCCSP) (MSP, error) {
	switch opts.(type) {
	case *BCCSPNewOpts:
		switch opts.GetVersion() {
		case MSPv1_0, MSPv1_1, MSPv1_3, MSPv1_4_3, MSPv3_0:
			return newBccspMsp(opts.GetVersion(), cryptoProvider)
		default:
			return nil, errors.Errorf("Invalid *BCCSPNewOpts. Version not recognized [%v]", opts.GetVersion())
		}
	case *IdemixNewOpts:
		switch opts.GetVersion() {
		case MSPv1_3, MSPv1_4_3:
			msp, err := idemix.NewIdemixMsp(MSPv1_3)
			if err != nil {
				return nil, err
			}

			return &idemixMSPWrapper{msp.(*idemix.Idemixmsp)}, nil
		case MSPv1_1:
			msp, err := idemix.NewIdemixMsp(MSPv1_1)
			if err != nil {
				return nil, err
			}

			return &idemixMSPWrapper{msp.(*idemix.Idemixmsp)}, nil
		default:

View on GitHub (pinned to 2736b63f8f)

Solutions

  1. Use a recognized MSP version constant in BCCSPNewOpts
  2. Match the version to the peer/network MSP version in use
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at msp/factory.go:58 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/aaf08b1ef398d5d3. Report an issue: GitHub.