You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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
Set up a portal server with xray-core (any version).
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
BurstObservatory fails to timely health-check dynamically registered outbound handlers (simplified reverse proxy) #5750 — BurstObservatory fails to timely health-check dynamically registered outbound handlers in simplified reverse proxy. The rproxy-* outbounds are registered via outbound.Manager.AddHandler() only on first bridge connection — after Observatory has already started — so Select() misses them for up to 10 minutes. This is likely the root cause of the routing failure observed here.
PR VLESS protocol: Add Reverse Proxy (4) Command and extremely simple config #5101 — The PR itself explicitly states: "反向代理子协议尚不稳定,未来肯定会 break,不保证跨版本兼容性" (reverse proxy sub-protocol is unstable, will break in the future, cross-version compatibility is not guaranteed). This warning appears to have materialised starting from v26.5.
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.
Describe the bug
After upgrading xray-core from
v26.4.25to 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 tov26.4.25restores 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
How to reproduce
"reverse": {"tag": "..."}inside the VLESS outbound client settings — as introduced in PR VLESS protocol: Add Reverse Proxy (4) Command and extremely simple config #5101).burstObservatorylogscontext deadline exceededfor the reverse outbound tag.Logs (bridge node, xray-core v26.6.1)
The
burstObservatorycontinuously 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
BurstObservatoryfails to timely health-check dynamically registered outbound handlers in simplified reverse proxy. Therproxy-*outbounds are registered viaoutbound.Manager.AddHandler()only on first bridge connection — after Observatory has already started — soSelect()misses them for up to 10 minutes. This is likely the root cause of the routing failure observed here.Additional context