ipfs/kubo · error

file argument was nil

Error message

file argument was nil

What it means

The init command was given file input (req.Files non-nil), but iterating its entries immediately hit EOF with no error, meaning the file list is empty — no configuration file was actually supplied for the custom init.

Source

Thrown at cmd/ipfs/kubo/init.go:90

	NoRemote: true,
	Extra:    commands.CreateCmdExtras(commands.SetDoesNotUseRepo(true), commands.SetDoesNotUseConfigAsInput(true)),
	PreRun:   commands.DaemonNotRunning,
	Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error {
		cctx := env.(*oldcmds.Context)
		empty, _ := req.Options[emptyRepoOptionName].(bool)
		algorithm, _ := req.Options[algorithmOptionName].(string)
		nBitsForKeypair, nBitsGiven := req.Options[bitsOptionName].(int)

		var conf *config.Config

		f := req.Files
		if f != nil {
			it := req.Files.Entries()
			if !it.Next() {
				if it.Err() != nil {
					return it.Err()
				}
				return errors.New("file argument was nil")
			}
			file := files.FileFromEntry(it)
			if file == nil {
				return errors.New("expected a regular file")
			}

			conf = &config.Config{}
			if err := json.NewDecoder(file).Decode(conf); err != nil {
				return err
			}
		}

		if conf == nil {
			var err error
			var identity config.Identity
			if nBitsGiven {
				identity, err = config.CreateIdentity(os.Stdout, []options.KeyGenerateOption{
					options.Key.Size(nBitsForKeypair),

View on GitHub (pinned to 329838acdf)

Solutions

  1. Pass an actual configuration file to 'ipfs init' (e.g. via stdin redirection)
  2. Omit file input entirely to initialize with defaults
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at cmd/ipfs/kubo/init.go:90 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of ipfs/kubo@329838acdf (2026-09-03). Data as JSON: /api/errors/85c3c627dddeb51f. Report an issue: GitHub.