{"record":{"id":"46eb6ad59c9379b3","repo":"ipfs/kubo","slug":"supernode-routing-was-never-fully-implemented-and","errorCode":null,"errorMessage":"supernode routing was never fully implemented and has been removed","messagePattern":"supernode routing was never fully implemented and has been removed","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"cmd/ipfs/kubo/daemon.go","lineNumber":492,"sourceCode":"\t\t// and they will show up at https://crt.sh/?q=libp2p.direct\n\t\tenableAutoTLS := cfg.AutoTLS.Enabled.WithDefault(config.DefaultAutoTLSEnabled)\n\t\tif enableAutoTLS {\n\t\t\tif cfg.AutoTLS.Enabled != config.Default {\n\t\t\t\t// hard fail if someone tries to explicitly enable both\n\t\t\t\treturn errors.New(\"private networking (swarm.key / LIBP2P_FORCE_PNET) does not work with AutoTLS.Enabled=true, update config to remove this message\")\n\t\t\t} else {\n\t\t\t\t// print error and disable autotls if user runs on default settings\n\t\t\t\tlog.Error(\"private networking (swarm.key / LIBP2P_FORCE_PNET) is not compatible with AutoTLS. Set AutoTLS.Enabled=false in config to remove this message.\")\n\t\t\t\tcfg.AutoTLS.Enabled = config.False\n\t\t\t}\n\t\t}\n\t}\n\n\t// Use config for routing construction\n\n\tswitch routingOption {\n\tcase routingOptionSupernodeKwd:\n\t\treturn errors.New(\"supernode routing was never fully implemented and has been removed\")\n\tcase routingOptionDefaultKwd, routingOptionAutoKwd:\n\t\tncfg.Routing = libp2p.ConstructDefaultRouting(cfg, libp2p.DHTOption)\n\tcase routingOptionAutoClientKwd:\n\t\tncfg.Routing = libp2p.ConstructDefaultRouting(cfg, libp2p.DHTClientOption)\n\tcase routingOptionDHTClientKwd:\n\t\tncfg.Routing = libp2p.DHTClientOption\n\tcase routingOptionDHTKwd:\n\t\tncfg.Routing = libp2p.DHTOption\n\tcase routingOptionDHTServerKwd:\n\t\tncfg.Routing = libp2p.DHTServerOption\n\tcase routingOptionNoneKwd:\n\t\tncfg.Routing = libp2p.NilRouterOption\n\tcase routingOptionDelegatedKwd:\n\t\tncfg.Routing = libp2p.ConstructDelegatedOnlyRouting(cfg)\n\tcase routingOptionCustomKwd:\n\t\tif cfg.Routing.AcceleratedDHTClient.WithDefault(config.DefaultAcceleratedDHTClient) {\n\t\t\treturn errors.New(\"Routing.AcceleratedDHTClient option is set even tho Routing.Type is custom, using custom .AcceleratedDHTClient needs to be set on DHT routers individually\")\n\t\t}","sourceCodeStart":474,"sourceCodeEnd":510,"githubUrl":"https://github.com/ipfs/kubo/blob/329838acdfafae224582930457efe80aa217afc0/cmd/ipfs/kubo/daemon.go#L474-L510","documentation":"The `--routing=supernode` CLI option is rejected because supernode routing was never fully implemented and has been removed from kubo. Only the remaining routing options (default, auto, autoClient, dhtclient, dhtserver, none, delegated, custom) are valid.","triggerScenarios":"Running `ipfs daemon --routing=supernode` (routingOptionSupernodeKwd).","commonSituations":"Old scripts or documentation referencing the supernode routing flag from early kubo versions; copying legacy deployment configs.","solutions":["Replace --routing=supernode with a supported value such as --routing=default (full DHT) or --routing=auto","If delegated-only behavior is desired, use --routing=delegated with Routing.Routers configured","Update automation scripts to remove the supernode keyword"],"exampleFix":"// before\nipfs daemon --routing=supernode\n// after\nipfs daemon --routing=default","handlingStrategy":"validation","validationCode":"VALID_ROUTING = {\"default\",\"auto\",\"autoclient\",\"dhtclient\",\"dhtserver\",\"none\",\"delegated\",\"custom\"}\nif routingFlag == \"supernode\" {\n    panic(\"--routing=supernode was removed; use default/delegated/custom\")\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Audit deployment scripts for removed flags when upgrading kubo","Use `ipfs daemon --help` to confirm accepted --routing values"],"tags":["ipfs","kubo","routing","cli","removed-feature"],"backgroundTag":"unsupported-routing-option","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"}