Users intermittently experience logout events while navigating through the application. They are unexpectedly redirected to the login page, indicating that persistence is not being honored by the load balancer.
Virtual Service (VS) scaled out across multiple Service Engines (SEs). or Multiple VIPs associated with the same Virtual Service.
The HTTP persistence cookie generated by Avi contains an encoded pool_id, which must remain consistent across all SEs serving the same pool. Due to a defect in the pool_id generation logic, different SEs may assign different pool_id values for the same pool.
This inconsistency results in incorrect decoding of the persistence cookie when a request lands on a different SE than the one that originally issued the cookie.
Flow leading to user logout:
SE1 generates a persistence cookie containing its version of the pool_id and sends it to the client.
The client sends a subsequent request—containing the same cookie—which lands on SE2.
SE2 attempts to decode the cookie but fails to recognize the pool_id because its pool_id differs from SE1’s value.
Due to the mismatch, SE2 does not honor persistence and instead load balances the request to another pool member.
The application session breaks, causing the user to be logged out and redirected to the login page.
1. Verify pool_id consistency across SEs
Run the following command to check whether all SEs share the same pool_id for the target pool:
In the command output, prst_id must be identical across all SEs.
If the values differ, the issue described above is likely the cause.
2. Correct the pool_id mismatch
To resolve the issue:
Create a new pool.
Attach the new pool to the Virtual Service.
Re-run the verification command to confirm that prst_id values match across all SEs. Sample output for a working scenario below:
Once all SEs use the same pool_id, HTTP cookie persistence will function reliably, preventing unexpected logouts.