ipfs/kubo · error
probe fetch: %w
Error message
probe fetch: %w
What it means
After resolving the probe path, `ipfs diag healthy` fetches the probe block via api.Dag().Get(); failure is wrapped as 'probe fetch'. This means the DAG pipeline cannot retrieve the probe block — the healthcheck's core signal that the node can still store and retrieve data.
Source
Thrown at core/commands/diag.go:70
`,
},
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
These commands expose internal datastore details and should not be used
in production workflows. The datastore format may change between versions.
View on GitHub (pinned to 329838acdf)
Solutions
- Inspect daemon logs for the wrapped fetch error
- Confirm network connectivity and routing (ipfs swarm peers, ipfs routing findprovs)
- Repair/verify the blockstore; restart the daemon
Defensive patterns
Strategy: retry
Try / catch
err := diagHealthy(ctx)
if err != nil && strings.Contains(err.Error(), "probe fetch") { verifySwarm(ctx); retryWithBackoff(ctx) } Prevention
- Keep the probe block pinned locally so fetch never needs the network
- Monitor network connectivity and blockstore errors
When it happens
Trigger: api.Dag().Get(req.Context, probeCID) returns an error: block missing locally and fetch failing (routing down, network offline, blockstore IO error).
Common situations: Healthcheck failures on nodes with broken bitswap/routing, full or corrupted blockstores, or nodes intentionally offline.
Related errors
- probe resolve: %w
- cids didn't match - local %s, remote %s
- CheckCIDSize: getting dag: %w
- CheckCIDSize: getting node size: %w
- produced block is over 2MiB: big blocks can't be exchanged w
AI-assisted analysis of ipfs/kubo@329838acdf (2026-09-03).
Data as JSON: /api/errors/987e7fe3d026dcf0.
Report an issue: GitHub.