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
- Use a recognized MSP version constant in BCCSPNewOpts
- 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.