ipfs/kubo · error

internal error: %v

Error message

internal error: %v

What it means

streamResult wraps a recovered panic from a per-entry encoding/display function into an error via defer/recover. It signals a bug in the command's output encoder (index out of range, nil dereference, etc.) rather than bad user input; %v is the recovered panic value.

Source

Thrown at core/commands/commands.go:239

					}
					res.SetLength(uint64(buf.Len()))
					return res.Emit(&buf)
				},
			},
		},
	}
}

type nonFatalError string

// streamResult is a helper function to stream results that possibly
// contain non-fatal errors.  The helper function is allowed to panic
// on internal errors.
func streamResult(procVal func(any, io.Writer) nonFatalError) func(cmds.Response, cmds.ResponseEmitter) error {
	return func(res cmds.Response, re cmds.ResponseEmitter) (rerr error) {
		defer func() {
			if r := recover(); r != nil {
				rerr = fmt.Errorf("internal error: %v", r)
			}
		}()

		var errors bool
		for {
			v, err := res.Next()
			if err != nil {
				if err == io.EOF {
					break
				}
				rerr = err
				return
			}

			errorMsg := procVal(v, os.Stdout)

			if errorMsg != "" {
				errors = true

View on GitHub (pinned to 329838acdf)

Solutions

  1. Report the panic value and command to the kubo issue tracker
  2. Update kubo; the encoder bug may already be fixed
  3. Retry with a different output format (--enc) to route around the broken encoder
Defensive patterns

Strategy: try-catch

When it happens

Trigger: Thrown at core/commands/commands.go:239 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/57313064865e6db3. Report an issue: GitHub.