fatedier/frp · error

protocol should be kcp or quic

Error message

protocol should be kcp or quic

What it means

Error "protocol should be kcp or quic" thrown in fatedier/frp.

Source

Thrown at pkg/config/v1/validation/visitor.go:59

func validateVisitorBaseConfig(c *v1.VisitorBaseConfig) error {
	if c.Name == "" {
		return errors.New("name is required")
	}

	if c.ServerName == "" {
		return errors.New("server name is required")
	}

	if c.BindPort == 0 {
		return errors.New("bind port is required")
	}
	return nil
}

func validateXTCPVisitorConfig(c *v1.XTCPVisitorConfig) error {
	if !slices.Contains([]string{"kcp", "quic"}, c.Protocol) {
		return fmt.Errorf("protocol should be kcp or quic")
	}
	return nil
}

View on GitHub (pinned to 6c8a8d0a97)

Solutions

  1. Set protocol to 'kcp' or 'quic' in the xtcp visitor configuration.
  2. Remove the protocol field to use the default protocol.

When it happens

Trigger: Raised by validateXTCPVisitorConfig in pkg/config/v1/validation/visitor.go when an xtcp visitor's protocol field is not "kcp" or "quic".

Common situations: Typo or unsupported transport protocol in an xtcp visitor config. Fix by setting protocol to "kcp" or "quic".


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