ipfs/kubo · error
provider: %w
Error message
provider: %w
What it means
fx wiring error at node startup: the configured Provide.Strategy value does not parse as a valid strategy (config.ParseProvideStrategy failed). The wrapped error names the invalid value; the node refuses to start with an unknown provide strategy.
Source
Thrown at core/node/provider.go:1165
return true
}
}
}
}
}
return false
}
// OnlineProviders groups units managing provide routing records online
func OnlineProviders(provide bool, cfg *config.Config) fx.Option {
if !provide {
return OfflineProviders()
}
providerStrategy := cfg.Provide.Strategy.WithDefault(config.DefaultProvideStrategy)
if _, err := config.ParseProvideStrategy(providerStrategy); err != nil {
return fx.Error(fmt.Errorf("provider: %w", err))
}
bloomFPRate := uint(cfg.Provide.BloomFPRate.WithDefault(config.DefaultProvideBloomFPRate))
opts := []fx.Option{
fx.Provide(setReproviderKeyProvider(providerStrategy, bloomFPRate)),
}
sweepEnabled := cfg.Provide.DHT.SweepEnabled.WithDefault(config.DefaultProvideDHTSweepEnabled)
dhtAvailable := hasDHTRouting(cfg)
// Use SweepingProvider only when both sweep is enabled AND DHT is available.
// For HTTP-only routing (e.g., Routing.Type="custom" with only HTTP routers),
// fall back to LegacyProvider which works with ProvideManyRouter.
// See https://github.com/ipfs/kubo/issues/11089
if sweepEnabled && dhtAvailable {
opts = append(opts, SweepingProviderOpt(cfg))
} else {View on GitHub (pinned to 329838acdf)
Solutions
- Set Provide.Strategy to a valid value ('all' or 'pinned') in the config
- Remove the key to fall back to the default strategy
- Reference: docs/config.md Provide section
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at core/node/provider.go:1165 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/e0a42cd3ae601b32.
Report an issue: GitHub.