NSX ALB Failed to Bypass an Unhealthy Horizon Connection Server: Root Cause, Symptoms, and Permanent Fix

NSX ALB Failed to Bypass an Unhealthy Horizon Connection Server: Root Cause, Symptoms, and Permanent Fix NSX ALB Failed to Bypass an Unhealthy Horizon Connection Server: Root Cause, Symptoms, and Permanent Fix After deploying NSX Advanced Load Balancer (Avi) in front of Horizon Connection Servers, one specific server became unstable. Its web console would not open, Horizon services stopped, and client access became unreliable. In theory, the load balancer should have removed that bad node and directed users to healthy Horizon Connection Servers. In practice, that did not happen consistently. The immediate workaround was simple: remove the problematic Connection Server from the load balancer pool. That restored service. But that was only an operational bypass, not a permanent fix. ...

The pending session on machine has expired

Horizon View Pending Session Has Expired on Zero Clients: Causes, Symptoms, Fixes, and Monitoring

Horizon View “Pending Session Has Expired” on Zero Clients: Causes, Symptoms, Fixes, and Monitoring

If a Horizon View desktop shows “The pending session has expired” and a zero client cannot connect, the problem is usually not simple VM power state failure. In most cases, Horizon successfully starts the brokering process, but the desktop launch never completes.

This usually points to one of four areas: a stuck Horizon Agent inside the VM, a broken secondary display protocol path, an expired or incomplete pending session, or routing and affinity issues between the client, UAG, Connection Server, and desktop.

What Does “The Pending Session Has Expired” Mean?

Horizon creates a temporary pending session when a user selects a desktop and the brokering process begins. If that session does not complete within the expected time window, Horizon removes it and reports that the pending session has expired.

Operational meaning: the desktop launch was started, but the connection chain did not finish successfully.

Main Causes

1. Horizon Agent in the Desktop VM Is Stuck or Unresponsive

The VM may be powered on and visible in vCenter, but the Horizon Agent inside the guest OS may not respond correctly. In that state, Horizon can assign the desktop, but the session never transitions to a usable connected state.

2. Broken Blast or PCoIP Path

Horizon authentication can succeed, but the secondary display protocol session may fail. This often happens when the network path between the zero client and the target component is incomplete or misrouted.

3. UAG or Load Balancer Affinity Problem

If the secondary protocol is sent to a different UAG than the one used for authentication, the session may not be authorized and the launch fails.

4. Session State Not Cleanly Released

A previous session may not have disconnected or logged off cleanly. That can leave Horizon waiting on an old state while a new session launch times out.

5. Network, Firewall, or Routing Misconfiguration

Even when the desktop is healthy, blocked ports or incorrect routing between client, UAG, Connection Server, and Agent can break the connection flow.

Common Symptoms

  • Zero client authenticates successfully but fails when launching the desktop
  • The desktop briefly starts to open and then disconnects
  • The user sees a black screen, timeout, or generic display protocol error
  • Horizon events show “The pending session on machine has expired”
  • The VM is powered on in vCenter, but the user still cannot connect
  • Rebooting the VM restores access temporarily

Why Rebooting the VM in vCenter Works

Rebooting the VM in vCenter is a valid recovery action because it forcefully resets the guest OS, Horizon Agent state, and any stuck pending session condition inside the desktop.

In practical operations, this often restores service quickly. However, it should be treated as a recovery action, not as a complete root-cause fix.

Resolution Methods

Method 1: Reboot the Desktop VM from vCenter

This is effective when the guest OS or Horizon Agent is stuck. If the user reconnects successfully after reboot, the problem likely involved desktop-side session or agent state.

Method 2: Reset or Restart the Desktop from Horizon Console

Instead of going directly to vCenter every time, administrators can use Horizon Console to restart or reset the VM. This is often the cleaner first administrative action inside the Horizon workflow.

Method 3: Verify Horizon Agent Health Inside the VM

If possible, access the desktop through vSphere Console or another management path and confirm that the guest OS is responsive, logon is not hung, and Horizon Agent-related services are healthy.

Method 4: Check for Stuck or Previous Sessions

If the previous session did not release properly, a new launch can fail. Check whether the user has an existing disconnected, logging-off, or stale session and clear it through Horizon tools if necessary.

Method 5: Validate UAG, Load Balancer, and Affinity Behavior

For environments using UAG or load balancing, verify that the same authenticated path is preserved for the secondary protocol. Affinity failure is a classic cause of successful login followed by failed desktop launch.

Method 6: Check Required Ports and Routing

Confirm that the required ports for the display protocol are open and that routing between the zero client, UAG, Connection Server, and desktop VM is correct.

Method 7: Review Logs

Review logs on Connection Server, UAG, and the desktop VM to determine whether the failure happens during authentication, brokering, or the secondary protocol stage.

Recommended Troubleshooting Sequence

  1. Confirm whether the VM is powered on in vCenter
  2. Check Horizon events for pending session expiration
  3. Attempt a desktop reset from Horizon Console
  4. If urgent, reboot the VM from vCenter to restore service
  5. Verify whether the issue is isolated to one user, one VM, or one pool
  6. Check if the same user can connect from another client type
  7. Review UAG and load balancer affinity
  8. Validate Blast or PCoIP network path and required ports
  9. Inspect desktop-side Horizon Agent responsiveness

Monitoring and Prevention

What to Monitor

  • Pending session expiration events in Horizon
  • Disconnected or stale sessions per user and pool
  • Desktop VMs that repeatedly require reset or reboot
  • UAG and Connection Server logs during launch failures
  • Blast or PCoIP timeout patterns

Operational Prevention

  • Track recurring problem desktops and remove them from service if needed
  • Validate load balancer persistence and UAG mapping
  • Monitor for VMs that are powered on but not actually brokerable
  • Review session timeout and disconnect behavior
  • Build alerting around repeated pending session expiration events
Check Item Why It Matters Action
VM power state A powered-off VM is an obvious failure, but powered-on does not mean healthy Verify in vCenter and Horizon together
Horizon event log Confirms whether the launch reached pending session stage Search for pending session expired events
Agent responsiveness The guest may be alive but not accepting Horizon sessions Check guest responsiveness and agent state
UAG / LB affinity Misrouted secondary sessions are silently dropped Validate persistence and path symmetry
Repeated reboot requirement Indicates a structural issue, not just an isolated user problem Escalate root-cause analysis

Final Assessment

When zero clients fail with “The pending session has expired”, the most likely diagnosis is:

  1. A stuck Horizon Agent or desktop OS state
  2. An incomplete or expired pending session
  3. A Blast or PCoIP connectivity failure after authentication
  4. A UAG or load balancer affinity problem
  5. A stale previous session that was not released cleanly

Rebooting the VM from vCenter is effective for immediate recovery, but a stable environment requires checking the full connection chain.

Conclusion

In Horizon View, “The pending session has expired” is not just a cosmetic event. It is a useful clue that the desktop brokering process started but never completed successfully.

If a zero client cannot connect and a VM reboot from vCenter restores service, treat that as a sign to investigate desktop agent health, session cleanup, and the secondary protocol path across UAG, load balancer, and network controls.

FAQ

What does “The pending session has expired” mean in Horizon?

It means Horizon created a temporary launch session, but the connection never completed successfully within the allowed time.

Why does the zero client fail even though the VM is powered on?

Because a powered-on VM can still have a stuck Horizon Agent, stale session state, or broken Blast/PCoIP path.

Is rebooting the VM in vCenter a valid fix?

Yes, for recovery. It often clears stuck guest or agent state. But it is usually not the final root-cause fix.

What should I check after the reboot works?

Check Horizon events, previous session state, UAG or load balancer affinity, required ports, and desktop-side agent responsiveness.

Comments

Popular posts from this blog

Troubleshooting VMware Horizon Client vdpConnect_Failure Issue

VMware Horizon Agent “Protocol Error” — Fixed by Windows Firewall Configuration

VMware / Omnissa Horizon Agent Unreachable – Causes and Fixes (Complete Troubleshooting Guide)