ipfs/kubo · error
failed to put key: %w
Error message
failed to put key: %w
What it means
'ipfs diag ds put' failed to write the given value under the given key in the debugging datastore. %w is the underlying datastore.Put error; typical causes are an invalid key prefix, a locked datastore (daemon running), or a disk-level failure. Debugging/testing command only.
Source
Thrown at core/commands/diag.go:252
WARNING: FOR DEBUGGING/TESTING ONLY
`,
},
Arguments: []cmds.Argument{
cmds.StringArg("key", true, false, "Datastore key (e.g., /test/mykey)"),
cmds.StringArg("value", true, false, "Value to store (as a string)"),
},
NoRemote: true,
PreRun: DaemonNotRunning,
Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error {
ds, closer, err := openDiagDatastore(env)
if err != nil {
return err
}
defer closer()
key := datastore.NewKey(req.Arguments[0])
if err := ds.Put(req.Context, key, []byte(req.Arguments[1])); err != nil {
return fmt.Errorf("failed to put key: %w", err)
}
if err := ds.Sync(req.Context, key); err != nil {
return fmt.Errorf("failed to sync: %w", err)
}
return nil
},
}
type diagDatastoreCountResult struct {
Prefix string `json:"prefix"`
Count int64 `json:"count"`
}
var diagDatastoreCountCmd = &cmds.Command{
Status: cmds.Experimental,
Helptext: cmds.HelpText{
Tagline: "Count entries matching a datastore prefix.",
ShortDescription: `View on GitHub (pinned to 329838acdf)
Solutions
- Verify the daemon is not running (PreRun DaemonNotRunning) so the datastore is not locked
- Use a valid datastore key such as /test/mykey
- Check disk health and permissions on the repo directory
Defensive patterns
Strategy: retry
When it happens
Trigger: Thrown at core/commands/diag.go:252 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/e1fdf133ac8e8c19.
Report an issue: GitHub.