fatedier/frp · error

invalid transport.maxPoolCount, must be non-negative

Error message

invalid transport.maxPoolCount, must be non-negative

What it means

Error "invalid transport.maxPoolCount, must be non-negative" thrown in fatedier/frp.

Source

Thrown at pkg/config/v1/validation/server.go:55

	errs = AppendError(errs, v.validateAuthTokenSource(c.Auth.Token, c.Auth.TokenSource))

	if err := validateLogConfig(&c.Log); err != nil {
		errs = AppendError(errs, err)
	}

	if err := validateWebServerConfig(&c.WebServer); err != nil {
		errs = AppendError(errs, err)
	}

	errs = AppendError(errs, ValidatePort(c.BindPort, "bindPort"))
	errs = AppendError(errs, ValidatePort(c.KCPBindPort, "kcpBindPort"))
	errs = AppendError(errs, ValidatePort(c.QUICBindPort, "quicBindPort"))
	errs = AppendError(errs, ValidatePort(c.VhostHTTPPort, "vhostHTTPPort"))
	errs = AppendError(errs, ValidatePort(c.VhostHTTPSPort, "vhostHTTPSPort"))
	errs = AppendError(errs, ValidatePort(c.TCPMuxHTTPConnectPort, "tcpMuxHTTPConnectPort"))
	if c.Transport.MaxPoolCount < 0 {
		errs = AppendError(errs, fmt.Errorf("invalid transport.maxPoolCount, must be non-negative"))
	}

	for _, p := range c.HTTPPlugins {
		if !lo.Every(SupportedHTTPPluginOps, p.Ops) {
			errs = AppendError(errs, fmt.Errorf("invalid http plugin ops, optional values are %v", SupportedHTTPPluginOps))
		}
	}
	return warnings, errs
}

View on GitHub (pinned to 6c8a8d0a97)

Solutions

  1. Set transport.maxPoolCount to 0 or a positive number.
  2. Remove transport.maxPoolCount to use the default value.

When it happens

Trigger: Raised by ValidateServerConfig in pkg/config/v1/validation/server.go when transport.maxPoolCount is set to a negative number.

Common situations: A negative transport.maxPoolCount in the server config. Fix by setting it to 0 or a positive integer.


AI-assisted analysis of fatedier/frp@6c8a8d0a97 (2026-08-15). Data as JSON: /api/errors/12517ac23791b8df. Report an issue: GitHub.