AlistGo/alist · error

unsupported proxy type: %s

Error message

unsupported proxy type: %s

What it means

Returned by buildConfig's proxy-type switch when conf.FRPProxyType is not one of the supported values (http, https, tcp, stcp). The default branch catches typos and unrecognized types before an frp client config can be produced.

Source

Thrown at internal/frp/frp.go:331

		}
		p := &v1.TCPProxyConfig{}
		p.Name = proxyName
		p.Type = "tcp"
		p.ProxyBackend = backend
		p.RemotePort = remotePort
		proxyCfgs = append(proxyCfgs, p)

	case "stcp":
		p := &v1.STCPProxyConfig{}
		p.Name = proxyName
		p.Type = "stcp"
		p.ProxyBackend = backend
		p.Secretkey = stcpSecretKey
		p.AllowUsers = []string{"*"}
		proxyCfgs = append(proxyCfgs, p)

	default:
		return nil, nil, fmt.Errorf("unsupported proxy type: %s", proxyType)
	}

	return cfg, proxyCfgs, nil
}

View on GitHub (pinned to 843d9dc814)

Solutions

  1. Set FRPProxyType to exactly one of: http, https, tcp, stcp (lowercase).
  2. If you need udp/xtcp, upgrade to a version that supports it or extend the switch yourself.
  3. Add validation/dropdown in the settings UI so invalid values cannot be saved.
Defensive patterns

Strategy: validation

Validate before calling

var validProxyTypes = map[string]bool{"http": true, "https": true, "tcp": true, "stcp": true}
if !validProxyTypes[proxyType] {
    return fmt.Errorf("proxy type must be one of http, https, tcp, stcp")
}

Prevention

When it happens

Trigger: Setting FRPProxyType to values like 'HTTP' (case-sensitive), 'websocket', 'udp', or any string outside the four supported types, then starting FRP.

Common situations: Typo in the settings field; copying proxy type from newer frp docs (udp/sudp/xtcp) that this build does not support; case mismatch.

Related errors


AI-assisted analysis of AlistGo/alist@843d9dc814 (2026-08-15). Data as JSON: /api/errors/e7eaf416d0fc4d0b. Report an issue: GitHub.