{"record":{"id":"0ac1a867faf57ec2","repo":"hyperledger/fabric","slug":"failed-loading-configuration-file-at-s","errorCode":null,"errorMessage":"failed loading configuration file at [%s]","messagePattern":"failed loading configuration file at \\[(.+?)\\]","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"msp/configbuilder.go","lineNumber":272,"sourceCode":"\tcrls, err := getPemMaterialFromDir(crlsDir)\n\tif os.IsNotExist(err) {\n\t\tmspLogger.Debugf(\"crls folder not found at [%s]. Skipping. [%s]\", crlsDir, err)\n\t} else if err != nil {\n\t\treturn nil, errors.WithMessagef(err, \"failed loading crls at [%s]\", crlsDir)\n\t}\n\n\t// Load configuration file\n\t// if the configuration file is there then load it\n\t// otherwise skip it\n\tvar ouis []*msp.FabricOUIdentifier\n\tvar nodeOUs *msp.FabricNodeOUs\n\t_, err = os.Stat(configFile)\n\tif err == nil {\n\t\t// load the file, if there is a failure in loading it then\n\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{","sourceCodeStart":254,"sourceCodeEnd":290,"githubUrl":"https://github.com/hyperledger/fabric/blob/2736b63f8fd5932511d56fe68b7039d15977f7f6/msp/configbuilder.go#L254-L290","documentation":"getMspConfig: the MSP config.yaml exists (os.Stat succeeded) but reading it failed (permissions, truncation, I/O error). The %s names the config file path; contrast with the silent skip when the file does not exist.","triggerScenarios":"Thrown at msp/configbuilder.go:272 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Check file permissions and readability of the config.yaml","Restore the file if truncated or corrupted","Verify the path points to a regular file"],"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"}