XTLS/Xray-core · error
VLESS "settings.flow" doesn't support "` + c.Flow + `" in th
Error message
VLESS "settings.flow" doesn't support "` + c.Flow + `" in this version
What it means
Thrown when building a VLESS inbound: the outbound-facing 'flow' field in settings only accepts the empty string or vless.XRV (xtls-rprx-vision) in this build. Any other flow string (e.g. legacy xtls-rprx-direct) fails the whole inbound build.
Source
Thrown at infra/conf/vless.go:53
Clients []json.RawMessage `json:"clients"`
Decryption string `json:"decryption"`
Fallbacks []*VLessInboundFallback `json:"fallbacks"`
Flow string `json:"flow"`
Testseed []uint32 `json:"testseed"`
}
// Build implements Buildable
func (c *VLessInboundConfig) Build() (proto.Message, error) {
config := new(inbound.Config)
if c.Clients != nil {
c.Users = c.Clients
}
config.Users = make([]*protocol.User, len(c.Users))
switch c.Flow {
case vless.XRV, "":
default:
return nil, errors.New(`VLESS "settings.flow" doesn't support "` + c.Flow + `" in this version`)
}
processClient := func(idx int) error {
rawUser := c.Users[idx]
user := new(protocol.User)
if err := json.Unmarshal(rawUser, user); err != nil {
return errors.New(`VLESS users: invalid user`).Base(err)
}
account := new(vless.Account)
if err := json.Unmarshal(rawUser, account); err != nil {
return errors.New(`VLESS users: invalid user`).Base(err)
}
u, err := uuid.ParseString(account.Id)
if err != nil {
return err
}
account.Id = u.String()
View on GitHub (pinned to 7d214f8b09)
Solutions
- Use "flow": "xtls-rprx-vision" if the client supports XTLS Vision
- Or remove the flow field (empty) for plain VLESS without XTLS
- Delete legacy flow values; they were removed from Xray
Example fix
// before
"settings": { "flow": "xtls-rprx-direct", ... }
// after
"settings": { "flow": "xtls-rprx-vision", ... } Defensive patterns
Strategy: validation
Validate before calling
flow := gjson.Get(inbound, "settings.flow").String()
if flow != "" && flow != "xtls-rprx-vision" {
return fmt.Errorf("inbound flow %q unsupported; use \"xtls-rprx-vision\" or omit", flow)
} Prevention
- Purge all legacy XTLS flow names from templates (xtls-rprx-origin/direct are gone)
- Keep only "xtls-rprx-vision" or empty for flow fields
When it happens
Trigger: "settings": { "flow": "xtls-rprx-direct" } on a VLESS inbound; any flow value other than "xtls-rprx-vision" or "".
Common situations: Porting an old XTLS config that used removed flows (xtls-rprx-origin, xtls-rprx-direct), or setting a per-user-only flow at the settings level with a typo.
Related errors
- VLESS users: "flow" doesn't support "` + account.Flow + `" i
- VLESS users: "flow" doesn't support "{account.Flow}" in this
- VLESS users: invalid user
- VLESS users: "encryption" should not be in inbound settings
- VLESS users: "tag" can't be empty for "reverse"
AI-assisted analysis of XTLS/Xray-core@7d214f8b09 (2026-08-15).
Data as JSON: /api/errors/900802d48b2d90d7.
Report an issue: GitHub.