fatedier/frp · error
plugin %s: %v
Error message
plugin %s: %v
What it means
Error "plugin %s: %v" thrown in fatedier/frp.
Source
Thrown at pkg/config/v1/validation/proxy.go:61
if c.Plugin.Type == "" {
if err := ValidatePort(c.LocalPort, "localPort"); err != nil {
return fmt.Errorf("localPort: %v", err)
}
}
if !slices.Contains([]string{"", "tcp", "http"}, c.HealthCheck.Type) {
return fmt.Errorf("not support health check type: %s", c.HealthCheck.Type)
}
if c.HealthCheck.Type != "" {
if c.HealthCheck.Type == "http" &&
c.HealthCheck.Path == "" {
return fmt.Errorf("health check path should not be empty")
}
}
if c.Plugin.Type != "" {
if err := ValidateClientPluginOptions(c.Plugin.ClientPluginOptions); err != nil {
return fmt.Errorf("plugin %s: %v", c.Plugin.Type, err)
}
}
return nil
}
func validateProxyBaseConfigForServer(c *v1.ProxyBaseConfig) error {
if err := ValidateAnnotations(c.Annotations); err != nil {
return err
}
return nil
}
func validateDomainConfigForClient(c *v1.DomainConfig) error {
if c.SubDomain == "" && len(c.CustomDomains) == 0 {
return errors.New("subdomain and custom domains should not be both empty")
}
return nil
}View on GitHub (pinned to 6c8a8d0a97)
Solutions
- Correct the plugin options reported in the nested error message.
- Read the documentation of the plugin type to check which fields are required.
When it happens
Trigger: Raised by validateProxyBaseConfigForClient in pkg/config/v1/validation/proxy.go when validation of the configured client plugin fails; the inner plugin validation error is wrapped with the plugin name.
Common situations: A plugin block (e.g. http2https, staticFile, unixDomainSocket) has missing or invalid fields such as localAddr, localPath, or unixPath. Fix by correcting the plugin fields named in the wrapped error.
AI-assisted analysis of fatedier/frp@6c8a8d0a97 (2026-08-15).
Data as JSON: /api/errors/c53f881631421e05.
Report an issue: GitHub.