Uploads moved to shared storage, and sessions still tied to whichever host served the previous request.
uploads moved to the object store. solved.
the cache already shared. solved.
sessions stored in the cache since 2020, which
everybody assumed made them shared.
and they are, except for the session ID cookie's
SameSite and domain attributes, which were set per
host in an nginx include that had been copied.
host B issued cookies for a slightly different domain,
so a failover logged everybody out.
The session store was shared and the cookie was not, which is the sort of detail that only appears during a failover drill. It was found in the first drill rather than in the first failover, which is the entire argument for drilling.