ipfs/kubo · error
pinning root %q FAILED: %s
Error message
pinning root %q FAILED: %s
What it means
'ipfs dag import' imported the blocks but failed to pin the DAG root: the wrapped PinErrorMsg comes from the pinning step (e.g. pin already exists under a different recursive pin, or a datastore write failure). %q is the root CID; the data is in the blockstore but not pinned as requested.
Source
Thrown at core/commands/dag/dag.go:261
}
stats, _ := req.Options[statsOptionName].(bool)
if stats {
fmt.Fprintf(w, "Imported %d blocks (%d bytes)\n", event.Stats.BlockCount, event.Stats.BlockBytesCount)
}
return nil
}
if event.Stats != nil {
return fmt.Errorf("unexpected message from DAG import")
}
enc, err := cmdenv.GetCidEncoder(req)
if err != nil {
return err
}
if event.Root.PinErrorMsg != "" {
return fmt.Errorf("pinning root %q FAILED: %s", enc.Encode(event.Root.Cid), event.Root.PinErrorMsg)
}
event.Root.PinErrorMsg = "success"
_, err = fmt.Fprintf(
w,
"Pinned root\t%s\t%s\n",
enc.Encode(event.Root.Cid),
event.Root.PinErrorMsg,
)
return err
}),
},
}
// DagExportCmd is a command for exporting an ipfs dag to a car
var DagExportCmd = &cmds.Command{
Helptext: cmds.HelpText{View on GitHub (pinned to 329838acdf)
Solutions
- Check the embedded PinErrorMsg for the specific pin failure
- Manually pin the root afterwards with 'ipfs pin add' once the cause is resolved
- Free space or repair the datastore if the embedded error is storage-related
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at core/commands/dag/dag.go:261 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/cba884bfe72e4d9a.
Report an issue: GitHub.