ipfs/kubo · error

failed to start subcommand: %s

Error message

failed to start subcommand: %s

What it means

The external subcommand binary was found, but exec.Cmd.Start failed before it could run (fork/exec error). %s is the underlying error, typically a missing interpreter, an execute-permission problem, or a binary format mismatch — not a command-not-found case.

Source

Thrown at core/commands/external.go:56

			r, w := io.Pipe()

			cmd := exec.Command(binname, req.Arguments...)

			// TODO: make commands lib be able to pass stdin through daemon
			// cmd.Stdin = req.Stdin()
			cmd.Stdin = io.LimitReader(nil, 0)
			cmd.Stdout = w
			cmd.Stderr = w

			// setup env of child program
			osenv := os.Environ()

			cmd.Env = osenv

			err = cmd.Start()
			if err != nil {
				return fmt.Errorf("failed to start subcommand: %s", err)
			}

			errC := make(chan error)

			go func() {
				var err error
				defer func() { errC <- err }()
				err = cmd.Wait()
				w.Close()
			}()

			err = res.Emit(r)
			if err != nil {
				return err
			}

			return <-errC
		},

View on GitHub (pinned to 329838acdf)

Solutions

  1. Verify the binary is executable (chmod +x) and matches the host architecture
  2. If it is a script, check its shebang interpreter exists
  3. Reinstall the external tool
Defensive patterns

Strategy: fallback

When it happens

Trigger: Thrown at core/commands/external.go:56 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/e27febd032351787. Report an issue: GitHub.