{"record":{"id":"a89d983e8aa6c235","repo":"ipfs/kubo","slug":"expected-a-regular-file","errorCode":null,"errorMessage":"expected a regular file","messagePattern":"expected a regular file","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"cmd/ipfs/kubo/init.go","lineNumber":94,"sourceCode":"\t\tcctx := env.(*oldcmds.Context)\n\t\tempty, _ := req.Options[emptyRepoOptionName].(bool)\n\t\talgorithm, _ := req.Options[algorithmOptionName].(string)\n\t\tnBitsForKeypair, nBitsGiven := req.Options[bitsOptionName].(int)\n\n\t\tvar conf *config.Config\n\n\t\tf := req.Files\n\t\tif f != nil {\n\t\t\tit := req.Files.Entries()\n\t\t\tif !it.Next() {\n\t\t\t\tif it.Err() != nil {\n\t\t\t\t\treturn it.Err()\n\t\t\t\t}\n\t\t\t\treturn errors.New(\"file argument was nil\")\n\t\t\t}\n\t\t\tfile := files.FileFromEntry(it)\n\t\t\tif file == nil {\n\t\t\t\treturn errors.New(\"expected a regular file\")\n\t\t\t}\n\n\t\t\tconf = &config.Config{}\n\t\t\tif err := json.NewDecoder(file).Decode(conf); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\n\t\tif conf == nil {\n\t\t\tvar err error\n\t\t\tvar identity config.Identity\n\t\t\tif nBitsGiven {\n\t\t\t\tidentity, err = config.CreateIdentity(os.Stdout, []options.KeyGenerateOption{\n\t\t\t\t\toptions.Key.Size(nBitsForKeypair),\n\t\t\t\t\toptions.Key.Type(algorithm),\n\t\t\t\t})\n\t\t\t} else {\n\t\t\t\tidentity, err = config.CreateIdentity(os.Stdout, []options.KeyGenerateOption{","sourceCodeStart":76,"sourceCodeEnd":112,"githubUrl":"https://github.com/ipfs/kubo/blob/329838acdfafae224582930457efe80aa217afc0/cmd/ipfs/kubo/init.go#L76-L112","documentation":"The init command received a file entry, but files.FileFromEntry returned nil, i.e. the entry was not a regular byte file (a directory or symlink entry). The custom config must be a single readable JSON file.","triggerScenarios":"Thrown at cmd/ipfs/kubo/init.go:94 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Supply a regular file containing the JSON configuration, not a directory","Flatten symlinked inputs to the actual file before passing it"],"exampleFix":null,"handlingStrategy":"type-guard","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"329838acdfafae224582930457efe80aa217afc0","analyzedAt":"2026-09-03T18:30:52.135Z","contentChangedAt":"2026-09-03T18:30:52.135Z","schemaVersion":2},"datasetVersion":"2026-09-11T00:17:11.886Z"}