XTLS/Xray-core · error
VLESS users: "flow" doesn't support "` + account.Flow + `" i
Error message
VLESS users: "flow" doesn't support "` + account.Flow + `" in this version
What it means
Per-user flow validation in a VLESS inbound: after an empty per-user flow inherits the settings-level flow, the value must be either empty or vless.XRV (xtls-rprx-vision). Any other string on a client — e.g. a legacy flow — returns this error for that user.
Source
Thrown at infra/conf/vless.go:77
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()
switch account.Flow {
case "":
account.Flow = c.Flow
case vless.XRV:
default:
return errors.New(`VLESS users: "flow" doesn't support "` + account.Flow + `" in this version`)
}
if len(account.Testseed) < 4 {
account.Testseed = c.Testseed
}
if account.Encryption != "" {
return errors.New(`VLESS users: "encryption" should not be in inbound settings`)
}
if account.Reverse != nil {
if account.Reverse.Tag == "" {
return errors.New(`VLESS users: "tag" can't be empty for "reverse"`)
}
if account.Reverse.Sniffing != nil { // may not be reached: error json unmarshal
return errors.New(`VLESS users: inbound's "reverse" can't have "sniffing"`)
}
}View on GitHub (pinned to 7d214f8b09)
Solutions
- Set the client's flow to "xtls-rprx-vision", or delete it so it inherits the inbound-level flow
- Remove all legacy flow values from every client object
Example fix
// before
{ "id": "8c1f...", "flow": "xtls-rprx-direct" }
// after
{ "id": "8c1f...", "flow": "xtls-rprx-vision" } Defensive patterns
Strategy: validation
Validate before calling
uf := gjson.Get(clientRaw, "flow").String()
if uf != "" && uf != "xtls-rprx-vision" {
return fmt.Errorf("client flow %q unsupported; use \"xtls-rprx-vision\" or omit", uf)
} Prevention
- Omit per-user flow to inherit the inbound-level setting
- Sweep configs for removed flow values after upgrading Xray
When it happens
Trigger: A clients entry with "flow": "xtls-rprx-direct" or a typo like "xtls-rprx-visionn" while the settings-level flow is valid.
Common situations: Old client entries copied from pre-Vision configs; disagreement between per-user flow and the only supported value in this build.
Related errors
- VLESS "settings.flow" doesn't support "` + c.Flow + `" in th
- 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/c5a507ca74c2257d.
Report an issue: GitHub.