{"record":{"id":"e9fba81c1e71f524","repo":"hyperledger/fabric","slug":"failed-loading-organizationalunit-certificate-at","errorCode":null,"errorMessage":"failed loading OrganizationalUnit certificate at [%s]","messagePattern":"failed loading OrganizationalUnit certificate at \\[(.+?)\\]","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"msp/configbuilder.go","lineNumber":287,"sourceCode":"\t\t// return an error\n\t\traw, err := os.ReadFile(configFile)\n\t\tif err != nil {\n\t\t\treturn nil, errors.Wrapf(err, \"failed loading configuration file at [%s]\", configFile)\n\t\t}\n\n\t\tconfiguration := Configuration{}\n\t\terr = yaml.Unmarshal(raw, &configuration)\n\t\tif err != nil {\n\t\t\treturn nil, errors.Wrapf(err, \"failed unmarshalling configuration file at [%s]\", configFile)\n\t\t}\n\n\t\t// Prepare OrganizationalUnitIdentifiers\n\t\tif len(configuration.OrganizationalUnitIdentifiers) > 0 {\n\t\t\tfor _, ouID := range configuration.OrganizationalUnitIdentifiers {\n\t\t\t\tf := filepath.Join(dir, ouID.Certificate)\n\t\t\t\traw, err = readFile(f)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, errors.Wrapf(err, \"failed loading OrganizationalUnit certificate at [%s]\", f)\n\t\t\t\t}\n\n\t\t\t\toui := &msp.FabricOUIdentifier{\n\t\t\t\t\tCertificate:                  raw,\n\t\t\t\t\tOrganizationalUnitIdentifier: ouID.OrganizationalUnitIdentifier,\n\t\t\t\t}\n\t\t\t\touis = append(ouis, oui)\n\t\t\t}\n\t\t}\n\n\t\t// Prepare NodeOUs\n\t\tif configuration.NodeOUs != nil && configuration.NodeOUs.Enable {\n\t\t\tmspLogger.Debug(\"Loading NodeOUs\")\n\t\t\tnodeOUs = &msp.FabricNodeOUs{\n\t\t\t\tEnable: true,\n\t\t\t}\n\t\t\tif configuration.NodeOUs.ClientOUIdentifier != nil && len(configuration.NodeOUs.ClientOUIdentifier.OrganizationalUnitIdentifier) != 0 {\n\t\t\t\tnodeOUs.ClientOuIdentifier = &msp.FabricOUIdentifier{OrganizationalUnitIdentifier: configuration.NodeOUs.ClientOUIdentifier.OrganizationalUnitIdentifier}","sourceCodeStart":269,"sourceCodeEnd":305,"githubUrl":"https://github.com/hyperledger/fabric/blob/2736b63f8fd5932511d56fe68b7039d15977f7f6/msp/configbuilder.go#L269-L305","documentation":"getMspConfig: reading the OrganizationalUnitIdentifiers entry's certificate file (path joined from the MSP dir and ouID.Certificate) failed, so the OU identifier cert cannot be embedded in the MSP config.","triggerScenarios":"Thrown at msp/configbuilder.go:287 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Verify the OU certificate path in config.yaml is correct relative to the MSP folder","Restore or copy the missing certificate file","Check file permissions"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"2736b63f8fd5932511d56fe68b7039d15977f7f6","analyzedAt":"2026-09-04T08:52:36.465Z","contentChangedAt":"2026-09-04T08:52:36.465Z","schemaVersion":2},"datasetVersion":"2026-09-08T10:18:20.063Z"}