ipfs/kubo · error

probe resolve: %w

Error message

probe resolve: %w

What it means

`ipfs diag healthy` resolves its built-in probe CID through the node's API (api.ResolvePath) to verify the DAG pipeline; a resolution failure is wrapped as 'probe resolve'. It means the node could not resolve the probe path, typically because the probe block is not present and cannot be fetched, or the node is unhealthy.

Source

Thrown at core/commands/diag.go:67

Exits 0 if the daemon is running and can resolve the well-known empty
UnixFS directory. Exits non-zero if shutdown has started or the DAG
pipeline is broken. Intended for container healthchecks.
`,
	},
	Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error {
		if t := shutdown.StartedAt(); !t.IsZero() {
			return fmt.Errorf("daemon is shutting down (started %s ago)", time.Since(t).Round(time.Second))
		}
		api, err := cmdenv.GetApi(env, req)
		if err != nil {
			return err
		}
		probeCID, err := cid.Decode(diagHealthyProbeCIDStr)
		if err != nil {
			return fmt.Errorf("invalid probe CID: %w", err)
		}
		if _, _, err := api.ResolvePath(req.Context, path.FromCid(probeCID)); err != nil {
			return fmt.Errorf("probe resolve: %w", err)
		}
		if _, err := api.Dag().Get(req.Context, probeCID); err != nil {
			return fmt.Errorf("probe fetch: %w", err)
		}
		return cmds.EmitOnce(res, "ok")
	},
}

var diagDatastoreCmd = &cmds.Command{
	Status: cmds.Experimental,
	Helptext: cmds.HelpText{
		Tagline: "Low-level datastore inspection for debugging and testing.",
		ShortDescription: `
'ipfs diag datastore' provides low-level access to the datastore for debugging
and testing purposes.

WARNING: FOR DEBUGGING/TESTING ONLY

View on GitHub (pinned to 329838acdf)

Solutions

  1. Check daemon logs for the underlying resolve error
  2. Verify blockstore integrity / run `ipfs repo gc` or repairs
  3. Ensure network/routing works so the probe block can be fetched
Defensive patterns

Strategy: retry

Try / catch

err := diagHealthy(ctx)
if err != nil && strings.Contains(err.Error(), "probe resolve") { checkLogs(); retryWithBackoff(ctx) }

Prevention

When it happens

Trigger: api.ResolvePath(req.Context, path.FromCid(probeCID)) fails: blockstore miss with broken DAG service, node shutting down, or routing unable to fetch the probe block.

Common situations: Container healthchecks failing on nodes with corrupted blockstores or non-functional routing; offline nodes trying to fetch the probe content from the network.

Related errors


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