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

  1. Set the client's flow to "xtls-rprx-vision", or delete it so it inherits the inbound-level flow
  2. 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

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


AI-assisted analysis of XTLS/Xray-core@7d214f8b09 (2026-08-15). Data as JSON: /api/errors/c5a507ca74c2257d. Report an issue: GitHub.