{"record":{"id":"71b7e79cc73ea73b","repo":"ipfs/kubo","slug":"init-seeding-init-docs-failed-s","errorCode":null,"errorMessage":"init: seeding init docs failed: %s","messagePattern":"init: seeding init docs failed: (.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"cmd/ipfs/kubo/init.go","lineNumber":223,"sourceCode":"\nfunc addDefaultAssets(out io.Writer, repoRoot string) error {\n\tctx, cancel := context.WithCancel(context.Background())\n\tdefer cancel()\n\n\tr, err := fsrepo.Open(repoRoot)\n\tif err != nil { // NB: repo is owned by the node\n\t\treturn err\n\t}\n\n\tnd, err := core.NewNode(ctx, &core.BuildCfg{Repo: r})\n\tif err != nil {\n\t\treturn err\n\t}\n\tdefer nd.Close()\n\n\tdkey, err := assets.SeedInitDocs(nd)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"init: seeding init docs failed: %s\", err)\n\t}\n\tlog.Debugf(\"init: seeded init docs %s\", dkey)\n\n\tif _, err = fmt.Fprintf(out, \"to get started, enter:\\n\"); err != nil {\n\t\treturn err\n\t}\n\n\t_, err = fmt.Fprintf(out, \"\\n\\tipfs cat /ipfs/%s/readme\\n\\n\", dkey)\n\treturn err\n}\n\n// pinEmptyDir pins the empty unixfs directory in the fresh repo.\n//\n// Until Kubo v0.43 this also published an IPNS record for the node's own\n// key pointing at the empty directory. That record was never visible to\n// the network (the DHT discarded records stored without a receive\n// timestamp), and once the offline publish path started sharing the DHT's\n// value store it would have been served to other peers, making a fresh","sourceCodeStart":205,"sourceCodeEnd":241,"githubUrl":"https://github.com/ipfs/kubo/blob/329838acdfafae224582930457efe80aa217afc0/cmd/ipfs/kubo/init.go#L205-L241","documentation":"Thrown by addDefaultAssets after a successful `ipfs init` when seeding the bundled welcome/init documents into the new repo (assets.SeedInitDocs) fails. The repo itself is initialized, but the sample docs and the printed 'to get started' root CID are missing. The wrapped value is the underlying error from the asset seeding path (blockservice/add of the embedded assets).","triggerScenarios":"SeedInitDocs returns an error: failure writing the asset blocks to the freshly created repo's datastore/datastore-internal errors, or an error constructing/opening the node used for seeding (the `nd.Close()` path indicates a node was opened).","commonSituations":"Corrupt or failing disk immediately after init; unusual datastore backends (e.g. badgerds profile) hitting write errors; out-of-disk/quota conditions; antivirus or filesystem interference deleting the repo mid-init.","solutions":["Re-run `ipfs init` in a fresh IPFS_PATH to get a complete repo including the welcome docs.","Inspect the wrapped error text for the real cause (disk full, datastore error) and fix that condition first.","If you do not need the sample docs, the repo is otherwise usable — proceed with `ipfs add`/`ipfs daemon` and ignore the missing docs."],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":"err := runInit(out, ipfsPath) // wraps addDefaultAssets\nif err != nil {\n\tif strings.Contains(err.Error(), \"seeding init docs\") {\n\t\tlog.Printf(\"warning: repo initialized but welcome docs failed: %v — repo is usable\", err)\n\t\treturn nil // or re-init in a fresh path if docs are required\n\t}\n\treturn err\n}","preventionTips":["Ensure adequate free disk space before `ipfs init`","Avoid exotic or failing datastores on first init; test with default settings first","Treat the seeded docs as optional — a failure here does not invalidate the repo"],"tags":["init","filesystem","assets"],"backgroundTag":"init-asset-seeding-failed","analyzedSha":"329838acdfafae224582930457efe80aa217afc0","analyzedAt":"2026-09-03T18:30:52.135Z","contentChangedAt":"2026-09-03T18:30:52.135Z","schemaVersion":2},"datasetVersion":"2026-09-11T00:17:11.886Z"}