Skip to content

[Bug]: VLESS Reverse Proxy (new format, PR #5101) routing broken on xray-core v26.5+ — works on v26.4.25 #6242

Description

@psy-factor

Describe the bug

After upgrading xray-core from v26.4.25 to any newer version (v26.5.x, v26.6.1), VLESS Reverse Proxy routing stops working on the bridge (outbound-initiating) side. The core starts without errors, but traffic is never routed through the reverse tunnel. Downgrading only the bridge server back to v26.4.25 restores full operation immediately without any config changes.

This issue was tested across 3x-ui panel versions v3.1.0, v3.2.0, v3.2.5, all of which generate the new VLESS Reverse Proxy format (not legacy "reverse" block). The portal side version does not matter — the regression is strictly on the bridge node.


Environment

Component | Version -- | -- xray-core (broken) | v26.5.x, v26.6.1 xray-core (works) | v26.4.25 Panel | 3x-ui v3.1.0, v3.2.0, v3.2.5 OS | Linux (amd64) Go | go1.26.3

How to reproduce

  1. Set up a portal server with xray-core (any version).
  2. Set up a bridge node using VLESS Reverse Proxy config (new format, "reverse": {"tag": "..."} inside the VLESS outbound client settings — as introduced in PR VLESS protocol: Add Reverse Proxy (4) Command and extremely simple config #5101).
  3. Run bridge node with xray-core v26.6.1 → routing does not work, burstObservatory logs context deadline exceeded for the reverse outbound tag.
  4. Downgrade only the bridge node to xray-core v26.4.25, keep config identical → routing works immediately.

Logs (bridge node, xray-core v26.6.1)

2026/06/01 19:11:21 WARNING - XRAY: core: Xray 26.6.1 started
2026/06/01 19:11:21 INFO - XRAY: infra/conf/serial: Reading config: &{Name:bin/config.json Format:json}
2026/06/01 19:11:21 DEBUG - XRAY: Xray 26.6.1 (Xray, Penetrates Everything.) 94ffd50 (go1.26.3 linux/amd64)
2026/06/01 19:12:04 WARNING - XRAY: app/observatory/burst: error ping https://www.google.com/generate_204 with 0_server_do_ams_9999<: Head "https://www.google.com/generate_204": context deadline exceeded (Client.Timeout exceeded while awaiting headers)

The burstObservatory continuously fails to probe via the reverse outbound tag (s0_server_do_ams_9999), indicating the reverse mux connection is either not established or not visible to the observatory scheduler.


Expected behavior

VLESS Reverse Proxy routing works on xray-core v26.5+ identically to v26.4.25 — bridge node establishes the reverse mux tunnel successfully and traffic is routed through it.


Related issues


Additional context

  • Panel 3x-ui migrated to the new VLESS Reverse Proxy format starting from v3.0.2. The config generated is correct — the issue is in the core.
  • The regression is version-bisected: v26.4.25 works, v26.5.x and v26.6.1 do not, with identical config.
  • Temporary workaround: pin xray-core to v26.4.25 on the bridge node.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions