ipfs/kubo · error
creating final Resource Manager config: %w
Error message
creating final Resource Manager config: %w
What it means
While constructing the libp2p resource manager at daemon startup, LimitConfig failed to merge the configured limits with user resource overrides -- typically malformed Swarm.ResourceMgr.Limits or Swarm.ResourceMgr.Scope in the config file.
Source
Thrown at core/node/libp2p/rcmgr.go:52
var manager network.ResourceManager
var opts Libp2pOpts
enabled := cfg.ResourceMgr.Enabled.WithDefault(true)
// ENV overrides Config (if present)
switch os.Getenv("LIBP2P_RCMGR") {
case "0", "false":
enabled = false
case "1", "true":
enabled = true
}
if enabled {
log.Debug("libp2p resource manager is enabled")
limitConfig, msg, err := LimitConfig(cfg, userResourceOverrides)
if err != nil {
return nil, opts, fmt.Errorf("creating final Resource Manager config: %w", err)
}
if !isPartialConfigEmpty(userResourceOverrides) {
rcmgrLogger.Info(`
libp2p-resource-limit-overrides.json has been loaded, "default" fields will be
filled in with autocomputed defaults.`)
}
// We want to see this message on startup, that's why we are using fmt instead of log.
rcmgrLogger.Info(msg)
if err := ensureConnMgrMakeSenseVsResourceMgr(limitConfig, cfg); err != nil {
return nil, opts, err
}
str, err := rcmgr.NewStatsTraceReporter()
if err != nil {
return nil, opts, errView on GitHub (pinned to 329838acdf)
Solutions
- Inspect Swarm.ResourceMgr.Limits and .Scope entries in the config for invalid keys, negative numbers, or wrong types
- Reset to defaults with 'ipfs config profile apply default' style fixes or remove the custom limits section
- Consult docs/libp2p-resource-management.md for the expected schema
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at core/node/libp2p/rcmgr.go:52 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/734ba63d3bb38c83.
Report an issue: GitHub.