{"record":{"id":"b6d1cf28ef6b4c2d","repo":"ipfs/kubo","slug":"no-delegated-publishers-configured-add-ipns-deleg-b6d1cf","errorCode":null,"errorMessage":"no delegated publishers configured: add Ipns.DelegatedPublishers or use --allow-offline for local-only publishing","messagePattern":"no delegated publishers configured: add Ipns\\.DelegatedPublishers or use --allow-offline for local-only publishing","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"core/coreapi/name.go","lineNumber":57,"sourceCode":"\tspan.SetAttributes(\n\t\tattribute.Bool(\"allowoffline\", options.AllowOffline),\n\t\tattribute.String(\"key\", options.Key),\n\t\tattribute.Float64(\"validtime\", options.ValidTime.Seconds()),\n\t)\n\tif options.TTL != nil {\n\t\tspan.SetAttributes(attribute.Float64(\"ttl\", options.TTL.Seconds()))\n\t}\n\n\t// Handle different publishing modes\n\tif options.AllowDelegated {\n\t\t// AllowDelegated mode: check if delegated publishers are configured\n\t\tcfg, err := api.repo.Config()\n\t\tif err != nil {\n\t\t\treturn ipns.Name{}, fmt.Errorf(\"failed to read config: %w\", err)\n\t\t}\n\t\tdelegatedPublishers := cfg.DelegatedPublishersWithAutoConf()\n\t\tif len(delegatedPublishers) == 0 {\n\t\t\treturn ipns.Name{}, errors.New(\"no delegated publishers configured: add Ipns.DelegatedPublishers or use --allow-offline for local-only publishing\")\n\t\t}\n\t\t// For allow-delegated mode, we only require that we have delegated publishers configured\n\t\t// The node doesn't need P2P connectivity since we're using HTTP publishing\n\t} else {\n\t\t// Normal mode: check online status with allow-offline flag\n\t\terr = api.checkOnline(options.AllowOffline)\n\t\tif err != nil {\n\t\t\treturn ipns.Name{}, err\n\t\t}\n\t}\n\n\tk, err := keylookup(api.privateKey, api.repo.Keystore(), options.Key)\n\tif err != nil {\n\t\treturn ipns.Name{}, err\n\t}\n\n\teol := time.Now().Add(options.ValidTime)\n","sourceCodeStart":39,"sourceCodeEnd":75,"githubUrl":"https://github.com/ipfs/kubo/blob/329838acdfafae224582930457efe80aa217afc0/core/coreapi/name.go#L39-L75","documentation":"In AllowDelegated mode, Publish requires at least one delegated IPNS publisher to be configured (Ipns.DelegatedPublishers, possibly augmented by AutoConf). When the resolved list is empty, this error tells the user how to enable delegated publishing or fall back to local-only publishing.","triggerScenarios":"Calling Publish with AllowDelegated=true while cfg.DelegatedPublishersWithAutoConf() returns an empty list (no Ipns.DelegatedPublishers in config and AutoConf disabled/unavailable).","commonSituations":"Fresh node without Ipns.DelegatedPublishers configured; AutoConf disabled so defaults are not fetched; using `ipfs name publish --allow-delegated` on a node with no delegated endpoints.","solutions":["Configure delegated publishers: `ipfs config --json Ipns.DelegatedPublishers '[\"https://delegated.ipfs.io\"]'`.","Use `--allow-offline` (AllowOffline) for local-only publishing without delegation.","Remove the AllowDelegated option to publish through the normal online DHT path.","If relying on AutoConf, ensure AutoConf is enabled and the autoconf endpoint is reachable."],"exampleFix":"// before\nipfs name publish --allow-delegated /ipfs/<cid>\n// after\nipfs config --json Ipns.DelegatedPublishers '[\"https://delegated.ipfs.io\"]'\nipfs name publish --allow-delegated /ipfs/<cid>","handlingStrategy":"validation","validationCode":"cfg, err := api.Repo().Config(ctx)\nif err == nil && len(cfg.IPNS.DelegatedPublishers) == 0 {\n    // configure publishers or use AllowOffline before attempting delegated publish\n}","typeGuard":null,"tryCatchPattern":"n, err := api.Name().Publish(ctx, p, opts.AllowDelegated(true))\nif err != nil && strings.Contains(err.Error(), \"no delegated publishers\") {\n    n, err = api.Name().Publish(ctx, p, opts.AllowOffline(true))\n}","preventionTips":["Set Ipns.DelegatedPublishers in config before using --allow-delegated.","Do not disable AutoConf if you rely on its default delegated endpoints.","Keep an --allow-offline fallback path in scripts."],"tags":["ipns","config","publish","delegated-routing"],"backgroundTag":"no-delegated-publishers-configured","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"}