# Self-Service Switching Exposed Every Place Identity Was Guessed

> Moving between ZopNight, zopcloud, and ZopDay used to mean logging out of one and back into another. A new switcher in the sidebar removes that entirely, letting a person move between all three…

Source: https://zop.dev/resources/blogs/sidebar-product-switcher-nearly-stranded-zopcloud-users
Published: 2026-09-22 · Author: riya-mittal · Tags: platform-engineering, self-service, zopcloud

---

Moving between ZopNight, zopcloud, and ZopDay used to mean [logging out of one](https://zop.dev/resources/blogs/centralized-sign-in-remembers-your-product-per-email) and back into another. A new switcher in the sidebar removes that entirely, letting a person move between all three without ever seeing a login screen again. [zopcloud switches in place](https://zop.dev/resources/blogs/idle-services-vm-sleep-and-wake) rather than opening as a separate app, since it's really a view of ZopDay, and it now carries its own green identity mark everywhere it appears.

Adding that one control did not stay contained to the sidebar. It touched every screen that had been quietly assuming a user's product context only ever changed through a full page reload, and two of those assumptions broke in ways serious enough to need same-release fixes.

## Hiding a Nav Section Doesn't Move You Off the Page It Led To

The first bug was reported straight from a live environment. The navigation correctly drops the Infrastructure section for a zopcloud user. What it didn't do was move a user who was already sitting on an Infrastructure page, Provision button and all, off of it. That page kept rendering in full, with no navigation entry left anywhere on screen to get back to anything else. The zopcloud identity, the switcher, and the nav-hiding logic had shipped together without anyone also handling the case of a user already standing on a surface that had just been pulled out from under them.

The fix deliberately lives in the route guard itself, not in the switcher's own selection logic, because switching through the sidebar is only one of four separate ways a person can land on that page.

<img src="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIGRhdGEtZDItdmVyc2lvbj0iMC43LjEiIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaW5ZTWluIG1lZXQiIHZpZXdCb3g9IjAgMCAxMjU4IDQzNCIgd2lkdGg9IjEyNTgiIGhlaWdodD0iNDM0Ij48c3ZnIGNsYXNzPSJkMi0yMTY4NTUyNTkzIGQyLXN2ZyIgd2lkdGg9IjEyNTgiIGhlaWdodD0iNDM0IiB2aWV3Qm94PSItMTAxIC0xMDEgMTI1OCA0MzQiPjxyZWN0IHg9Ii0xMDEuMDAwMDAwIiB5PSItMTAxLjAwMDAwMCIgd2lkdGg9IjEyNTguMDAwMDAwIiBoZWlnaHQ9IjQzNC4wMDAwMDAiIHJ4PSIwLjAwMDAwMCIgZmlsbD0iI0ZGRkZGRiIgY2xhc3M9IiBmaWxsLU43IiBzdHJva2Utd2lkdGg9IjAiIC8+PHN0eWxlIHR5cGU9InRleHQvY3NzIj48IVtDREFUQVsKLmQyLTIxNjg1NTI1OTMgLnRleHQtYm9sZCB7Cglmb250LWZhbWlseTogImQyLTIxNjg1NTI1OTMtZm9udC1ib2xkIjsKfQpAZm9udC1mYWNlIHsKCWZvbnQtZmFtaWx5OiBkMi0yMTY4NTUyNTkzLWZvbnQtYm9sZDsKCXNyYzogdXJsKCJkYXRhOmFwcGxpY2F0aW9uL2ZvbnQtd29mZjtiYXNlNjQsZDA5R1JnQUJBQUFBQUExc0FBb0FBQUFBRkx3QUFndUZBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJQVXk4eUFBQUE5QUFBQUdBQUFBQmdYeEhYcm1OdFlYQUFBQUZVQUFBQWZ3QUFBSndDZHdMbFoyeDVaZ0FBQWRRQUFBY1dBQUFKa0VsQVE0Qm9aV0ZrQUFBSTdBQUFBRFlBQUFBMkczOGUxR2hvWldFQUFBa2tBQUFBSkFBQUFDUUtmd1hlYUcxMGVBQUFDVWdBQUFCOEFBQUFmRHBJQkZSc2IyTmhBQUFKeEFBQUFFQUFBQUJBSnV3cGptMWhlSEFBQUFvRUFBQUFJQUFBQUNBQU53RDNibUZ0WlFBQUNpUUFBQU1vQUFBSUtnandWa0Z3YjNOMEFBQU5UQUFBQUIwQUFBQWcvOUVBTWdBREFpb0N2QUFGQUFBQ2lnSllBQUFBU3dLS0FsZ0FBQUZlQURJQktRQUFBZ3NIQXdNRUF3SUNCR0FBQXZjQUFBQURBQUFBQUFBQUFBQkJSRUpQQUNBQUlQLy9BdTcvQmdBQUE5Z0JFU0FBQVo4QUFBQUFBZkFDbEFBQUFDQUFBM2ljWE16SnpRRUJHSURoWjVaL241OHhkaTRLMEl1RUNoekVWVnhFRjFxd05DQXFVb0VTUGlGTzN1TnplSkhJSkNqa2RxaVVNcW1Sc1ltWmhaV05iUVF2bTVwYldqOHNybkdMUzV6akZNYzR4UDU1ZWk4eGxNcmtQbno2OHUzSHJ6K0ZmelYxcFlaS1UwdGJSMWRQMzRBN0FBQUEvLzhCQUFELy93WVBHVTBBZUp5RVZXOXNHM2NaZm44L1grNGE1NXJrZkxiUGRueitkN2s3MjRudDJCZmZKYkVUeDR2enA0bWROR21iWmx2U2JKR0FyZW5TMHFZMHF3YjkwaUgrdEpyQUFYVklNSVNZQUtsRG1pWWtHQXFJQ1FiVHhxZXU3QXRvSUZBL3JGL01aQ0VrM0R0MFp5ZE4rTUlIMzA4Nm5kLzNlWi9uZVo4ZnRNRkpBTHlCZDhFRzdkQUZEbkFCS0V5WUVSVlpGaWhOMFRTQnMya3lZcWlUMktHLy9rTTVSc1JpUkR4MEozaDlmUjFWenVIZFJ4ZWVybXhzL0dzOWw5Ty85NHUzOWR2b3l0c0FHSkpHSFg4SjM0RXU2QUZvaTBoU2RsQlZsWXpiN1hLU3BKeFJzNE9TRUNGZFRqZGFYbmw1YnU3bGxlWnpZbjUrWW1KK25sNTY5ZnptdHhZV3ZuMysvS3RMTjdZM05yYTJOamEyemJvVkFId0szNEpPNEV5a3JZb1VLOGlDaTFHYWRZWEt3OG5McFVKMjkvVXZMcFpIUmtkSHl2aVd1REkvczhicC8zbjRFRDJUSGhpUUFCQUlSaDNiOFIySVd3aGx6ZTF1RnBEbEpHN0I1U2lwaFpQam10aVJjL3hHNXJTd0hFMG1sTDR6NGJ5VWU3NDBkQ2srRnhxWHBjUncvSFJ1YW1TTEhraCtKaUJGK0NEdjZPMU1UYVhVbGNIKytKcTNKK2dQQkppSTUvU2t1am9FR09KR0hYMklHdUFGQVlDTG1CUnBWanRLdHBxN0dFRVdTRkxMcUZxV05ESDhxblR5WmhVTHNlQjRiemExT2JMKzJSMDdFWncrNWhYWitYeVFQbHVZWCtrS3l4N1hzM3p2MW1YOUg0cGZ1TXl4WisxOXZJY0RrN3VpVWNkdXZBZE9DRFluRmlpQlVWelUvd2dqUkNpWDI0MG13eE04UVYrcEVud3BrbDlKNWRkWEpIVzVQK2FNMHVGUUZ1L2RMZnY0c2MrWHo3eFkySmtxZnpueHZxTVRURTU3alRyYVF3M3dIVkdkbzFvc0tobFY0MGdTZVNjdkZtZStVRXBPK3llRlVMWlFHUEFrMlJGeG1SNjl1blJxZXpUQXJmUGw0bmpGMWZWTXFBY3M3TEpSUncyOEJ5eUU5cm15Q3N0WjVSQkwrMko5dW5veHR6NFlHL0tTMVIwNzRadkNIdG5COWprRk5VVi8vY1hGcTJOK1Qva25qeWJTUG1ISDZYM2YwVGt4ZldJU3NJWDliNmdCbmhZL2h6MUxoVTEzbU5odGltVmRGSnkrL01URWhkejBXb3JBK2tmMnFYUldUVXZudnZPVzNCOVI2Ykh0cGNYdFFtR3p4SXJ0cWhKKzBoZEFJN0ZzeXB6RkJoRWpnU25VZ0JUa1lOYWFSc29PbXVCTkEyVDMyM0tLUzJpcUlrUmtpenZURWs2U3RCM2FIcmJsK0loa2ZmTHB5TG1oYWJZbjVQSEZSczVsKzhNL1c2RGFCMWMwUHVpSXhFNnVQbHQ2YVphWFpaNlg1VmhtWEJZVmI1anVHYjNuRytyUFI0bmowV0JQcHB0d2xQcnlDMUY2c3lQaUhKN3R0WGU1V1VkdVFsbE1vdmZpTVRrV2pjYmllclhYeTNYYmJCNnZud2RMODZJcGtPVXJjeU5iZm5JeEFtT2hwSmhpbGZMUFpSWlBWUG1RUCtyQmUzZWY5UFp0cnVrZm9MQWE5WEw2bTJBWW9BSEFYL0E5TElFZkFDamc0V3NBaG1IODBjakR4OWI3UU92OXJZT2VBYndIdE5XVFVUVEZ6QURLVlh5RitPNzNmL3JMMXk0VjhKNis5YnNQOUQvL1p2cTYrYjFSUnc2OEIxMU45ekFLYzJER1A1UnpWYWE5alNJZHRFZy9QWWVGUng5eERvUmVhS09hZld3OGFrRFk2c01wVGRjZG1aQTZPSXZtUGs2bHMwVTJQSnMrT1ZmbFErS0ErVWloMm5ndzBSZU5wUGZISHREZmJCMzcvS0ZHaTc5V2o4UDg3ZGlKVU9XQVFGUXJCQkpIK0d0NjEvTFUvODliZCtGaXFYU3hVTmdxbGJZS2lXUXlrVXdrV25zM3VuMXE2ZXJvdGNwNHNXeXVYek16WnJBYk5ZQTErZWNlbzdOc0tjbWNpMzBjR1NaTy9vVDgxSFA1ZFRXVTk3VXRTT3B5WDl3Wi9UbitjZG9uZlBYS21aMUNqM2ZoRzZqM0lEQ3MyZEVycUFHT0kvdzJVN2M1ZVU5WmN2bnRudVBlYnYrb0U5WE9adEp0YlRjSUlwYlIvd29JWEVZZHZZWWFJRnU2UHM1d3FabmhCOFhNQkE5Z2w1TzhsLzZjOUVTa0VBd0grS1F2a0lzK2YyYjRiUEFKMzZCdmVGZ0tqY2FlbzZYZ3FyZUhZeGszYTZkN2gyT1R5N0pueGVtV1BkN09EbUU0T2JIVzlEeGoxTkVXM2padm9iYUlsTTBLV1UxVFhJcExPQlJ5c0xwUUtqUFhyMTBUZU5wcjUxaU5Qci84M2d2a3padFhmaDhYU1dLVHBKdTE4a1lkL1J2VlRQMlBlSk5wUmR1ZkZrOVVBeUcvNUs3dWROaUNzL1RtR2hyVVA4N0dmRHlhMGJzbnhYNUE1aDRnQTlYZ09JQmlVemkzMjZSUzB4VGJXei9hSGJlemRxS2R0UmR2L3dEVlBoRXJzbHdSUDlHN3JkNGVBRnhETmN2ZmgvOTNxSUlnUzVJSmc2SjJYL3JtQUdrbkNlcDR1M1pqcUwyTElxaDJLdldWYTNjVDFIR0tvRHFvZmxSN0lNNUkwcXp3d0RwbnhBZDY5N3ZDVkRRNkpieHI5YU9OTWZRSTFVeVhQdFpMMDQ1QTdzUTc3bkNYajNJY0U2TjI2dGU3MHgwT08zR01hYy9mdnNzTkxieERFcGRRV3kvdlEzKy9INWtTaFduaHZ0NHhkaWJlNURKcGpDR0FOMHcvY2JLcXlwR0lZRjBXVGMrV0EwTWpDQk5ZVUZVcE03ajZ6cnl6S1BaRnBlUnNjV25uSU12Z1ExUURXek5YaWxWVTA3c0JHVy9nWVRpRjcwRUhBSE9vb0poTWltSXlpWWZqZ2hBM2Y2WU1abWJkUnpYb1B1SkpVMWFTN0EzR3VueDIxczV6MVZEbHQ4ZklDelpDanFGLzZxejZsQWIvQlFBQS8vOEJBQUQvLy9ISTkrRUFBQUFCQUFBQUFndUZMN0NwOVY4UFBQVUFBUVBvQUFBQUFOaGRvSVFBQUFBQTNXWXZOdjQzL3NRSWJRUHhBQUVBQXdBQ0FBQUFBQUFBQUFFQUFBUFkvdThBQUFpWS9qZitOd2h0QUFFQUFBQUFBQUFBQUFBQUFBQUFBQUFmQXJJQVVBRElBQUFDckFBdUFtVUFUUUlzQUNNQ0R3QXFBajBBUVFIVEFDUUNQUUFuQWdZQUpBSVdBQ0lDT3dCQkFSUUFOd0VXLzgwQ0pBQkJBUjRBUVFOWkFFRUNQQUJCQWlzQUpBSTlBRUVCamdCQkFic0FGUUYvQUJFQ09BQThBZ3NBREFNSUFCZ0NDUUFNQVN3QUxnRVVBRUVBQVArdEFSYi96UUFBQUN3QUxBQllBSDRBdmdEMkFTZ0JWQUdHQWJvQ0lnSkVBbEFDWEFKMEFwQUN3Z0xrQXhBRFFBTmdBNXdEd2dQa0JBQUVPQVJvQklnRWxBU3FCTWdBQVFBQUFCOEFrQUFNQUdNQUJ3QUJBQUFBQUFBQUFBQUFBQUFBQUFRQUEzaWNuSlRQYmh0VkZNWi9UbXpUQ3NFQ1JWVzZpZTZDUlpIbzJGUkoxVFlyaDlTS1JSUUhqd3RDUWtnVHovaVBNcDRaZVNZTzRRbFk4eGE4UlZjOEJNK0JXS1A1Zk96WUJkRW1pcEo4ZCs3NTg1MXp2bk9CSGY1bW0wcjFJZkJIUFRGY1lhOStibmlMQi9VVHc5dTA2MXVHcXp5cC9XbTRSbGliRzY3emVhMW4rQ1BlVm44ei9JRDk2aytHSDdKYmJSdittR2ZWSGNPZmJEditNdndwKzd4ZDRBcTg0RmZERlhiSkRHK3h3NCtHdDNtRXhheFVlVVRUY0kzUDJETmNady9vTTZFZ1prTENDTWVRQ1NPdW1CR1I0eE14WThLUWlCQkhoeFl4aGI0bUJFS08wWDkrRGZBcG1CRW80cGdDUjR4UFRFRE8yQ0wrSXErVWMyVWM2alN6dXhZRll3SXU1SEZKUUlJalpVUktRc1NsNGhRVVpMeWlRWU9jZ2ZobUZPUjQ1RXlJOFVpWk1hSkJsemFuOUJrekljZlJWcVNTbVUvS2tJSnJBdVYzWmxGMlprQkVRbTZzcmtnSXhkT0pYeVR2RHFjNHVtU3lYWTk4dWhIaFN4emZ5YnZrbHNyMkt6ejl1alZtbTNtWGJBTG02bWVzcnNTNnVkWUV4N290ODdiNFZyamdGZTVlL2Rsazh2NGVoZnBmS1BJRlY1cC9xRWtsWXBMZzNDNHRmQ25JZDQ5eEhPbmN3VmRIdnFkRG54TzZ2S0d2YzRzZVBWcWMwYWZEYS9sMjZlSDRtaTVuSE11akk3eTRhMHN4Wi95QTR4czZzaWxqUjlhZnhjUWlmaVl6ZGVmaU9GTWRVekwxdkdUdXFkWklGZDU5d3VVT3BSdnF5T1V6MEI2VmxrN3pTN1JuQVNOVFJTYUdVL1Z5cVkzYytoZWFJcWFxcFp6dDdYMjVEWFBidmVVVzM1QnFoMHUxTGppVmsxc3dldDlVdlhjMGM2MGZqNENRbEF0WkRFaVowcURnUnJ6UENiZ2l4bkdzN3Axb1N3cGFLNTh5ejQxVUVqRVZndzZKNHN6STlEY3czZmpHZmJDaGUyZHZTU2ova3VubHFxcjdaSEhxMWUyTTNxaDd5enZmdWh5dFRhQmhVMDNYMURRUTE4UzBIMm1uMXZuNzhzMzF1cVU4NVlpVW1QQmZMOEF6UEpyc2M4QWhZMlVZNkdadXIwTlRMMFNUbHh5cStrc2lXUTJsNThnaUhPRHhuQU1PZU1uemQvcTRaT0tNaTF0eFdjL2Q0cGdqdWh4K1VCVUwreTVIdkY1OSsvK3N2NHRwVTdVNG5xNU9MKzQ5eFNkM1VPc1gyclBiOTdLbmlaV1RtRnUwMjYwNEkyQmFjbkc3NnpXNXgzai9BQUFBLy84QkFBRC8vL1MzVDFGNG5HSmdaZ0NELytjWWpCaXdBQUFBQUFELy93RUFBUC8vTHdFQ0F3QUFBQT09Iik7Cn1dXT48L3N0eWxlPjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+PCFbQ0RBVEFbLnNoYXBlIHsKICBzaGFwZS1yZW5kZXJpbmc6IGdlb21ldHJpY1ByZWNpc2lvbjsKICBzdHJva2UtbGluZWpvaW46IHJvdW5kOwp9Ci5jb25uZWN0aW9uIHsKICBzdHJva2UtbGluZWNhcDogcm91bmQ7CiAgc3Ryb2tlLWxpbmVqb2luOiByb3VuZDsKfQouYmxlbmQgewogIG1peC1ibGVuZC1tb2RlOiBtdWx0aXBseTsKICBvcGFjaXR5OiAwLjU7Cn0KCgkJLmQyLTIxNjg1NTI1OTMgLmZpbGwtTjF7ZmlsbDojMEEwRjI1O30KCQkuZDItMjE2ODU1MjU5MyAuZmlsbC1OMntmaWxsOiM2NzZDN0U7fQoJCS5kMi0yMTY4NTUyNTkzIC5maWxsLU4ze2ZpbGw6Izk0OTlBQjt9CgkJLmQyLTIxNjg1NTI1OTMgLmZpbGwtTjR7ZmlsbDojQ0ZEMkREO30KCQkuZDItMjE2ODU1MjU5MyAuZmlsbC1ONXtmaWxsOiNERUUxRUI7fQoJCS5kMi0yMTY4NTUyNTkzIC5maWxsLU42e2ZpbGw6I0VFRjFGODt9CgkJLmQyLTIxNjg1NTI1OTMgLmZpbGwtTjd7ZmlsbDojRkZGRkZGO30KCQkuZDItMjE2ODU1MjU5MyAuZmlsbC1CMXtmaWxsOiMwRDMyQjI7fQoJCS5kMi0yMTY4NTUyNTkzIC5maWxsLUIye2ZpbGw6IzBEMzJCMjt9CgkJLmQyLTIxNjg1NTI1OTMgLmZpbGwtQjN7ZmlsbDojRTNFOUZEO30KCQkuZDItMjE2ODU1MjU5MyAuZmlsbC1CNHtmaWxsOiNFM0U5RkQ7fQoJCS5kMi0yMTY4NTUyNTkzIC5maWxsLUI1e2ZpbGw6I0VERjBGRDt9CgkJLmQyLTIxNjg1NTI1OTMgLmZpbGwtQjZ7ZmlsbDojRjdGOEZFO30KCQkuZDItMjE2ODU1MjU5MyAuZmlsbC1BQTJ7ZmlsbDojNEE2RkYzO30KCQkuZDItMjE2ODU1MjU5MyAuZmlsbC1BQTR7ZmlsbDojRURGMEZEO30KCQkuZDItMjE2ODU1MjU5MyAuZmlsbC1BQTV7ZmlsbDojRjdGOEZFO30KCQkuZDItMjE2ODU1MjU5MyAuZmlsbC1BQjR7ZmlsbDojRURGMEZEO30KCQkuZDItMjE2ODU1MjU5MyAuZmlsbC1BQjV7ZmlsbDojRjdGOEZFO30KCQkuZDItMjE2ODU1MjU5MyAuc3Ryb2tlLU4xe3N0cm9rZTojMEEwRjI1O30KCQkuZDItMjE2ODU1MjU5MyAuc3Ryb2tlLU4ye3N0cm9rZTojNjc2QzdFO30KCQkuZDItMjE2ODU1MjU5MyAuc3Ryb2tlLU4ze3N0cm9rZTojOTQ5OUFCO30KCQkuZDItMjE2ODU1MjU5MyAuc3Ryb2tlLU40e3N0cm9rZTojQ0ZEMkREO30KCQkuZDItMjE2ODU1MjU5MyAuc3Ryb2tlLU41e3N0cm9rZTojREVFMUVCO30KCQkuZDItMjE2ODU1MjU5MyAuc3Ryb2tlLU42e3N0cm9rZTojRUVGMUY4O30KCQkuZDItMjE2ODU1MjU5MyAuc3Ryb2tlLU43e3N0cm9rZTojRkZGRkZGO30KCQkuZDItMjE2ODU1MjU5MyAuc3Ryb2tlLUIxe3N0cm9rZTojMEQzMkIyO30KCQkuZDItMjE2ODU1MjU5MyAuc3Ryb2tlLUIye3N0cm9rZTojMEQzMkIyO30KCQkuZDItMjE2ODU1MjU5MyAuc3Ryb2tlLUIze3N0cm9rZTojRTNFOUZEO30KCQkuZDItMjE2ODU1MjU5MyAuc3Ryb2tlLUI0e3N0cm9rZTojRTNFOUZEO30KCQkuZDItMjE2ODU1MjU5MyAuc3Ryb2tlLUI1e3N0cm9rZTojRURGMEZEO30KCQkuZDItMjE2ODU1MjU5MyAuc3Ryb2tlLUI2e3N0cm9rZTojRjdGOEZFO30KCQkuZDItMjE2ODU1MjU5MyAuc3Ryb2tlLUFBMntzdHJva2U6IzRBNkZGMzt9CgkJLmQyLTIxNjg1NTI1OTMgLnN0cm9rZS1BQTR7c3Ryb2tlOiNFREYwRkQ7fQoJCS5kMi0yMTY4NTUyNTkzIC5zdHJva2UtQUE1e3N0cm9rZTojRjdGOEZFO30KCQkuZDItMjE2ODU1MjU5MyAuc3Ryb2tlLUFCNHtzdHJva2U6I0VERjBGRDt9CgkJLmQyLTIxNjg1NTI1OTMgLnN0cm9rZS1BQjV7c3Ryb2tlOiNGN0Y4RkU7fQoJCS5kMi0yMTY4NTUyNTkzIC5iYWNrZ3JvdW5kLWNvbG9yLU4xe2JhY2tncm91bmQtY29sb3I6IzBBMEYyNTt9CgkJLmQyLTIxNjg1NTI1OTMgLmJhY2tncm91bmQtY29sb3ItTjJ7YmFja2dyb3VuZC1jb2xvcjojNjc2QzdFO30KCQkuZDItMjE2ODU1MjU5MyAuYmFja2dyb3VuZC1jb2xvci1OM3tiYWNrZ3JvdW5kLWNvbG9yOiM5NDk5QUI7fQoJCS5kMi0yMTY4NTUyNTkzIC5iYWNrZ3JvdW5kLWNvbG9yLU40e2JhY2tncm91bmQtY29sb3I6I0NGRDJERDt9CgkJLmQyLTIxNjg1NTI1OTMgLmJhY2tncm91bmQtY29sb3ItTjV7YmFja2dyb3VuZC1jb2xvcjojREVFMUVCO30KCQkuZDItMjE2ODU1MjU5MyAuYmFja2dyb3VuZC1jb2xvci1ONntiYWNrZ3JvdW5kLWNvbG9yOiNFRUYxRjg7fQoJCS5kMi0yMTY4NTUyNTkzIC5iYWNrZ3JvdW5kLWNvbG9yLU43e2JhY2tncm91bmQtY29sb3I6I0ZGRkZGRjt9CgkJLmQyLTIxNjg1NTI1OTMgLmJhY2tncm91bmQtY29sb3ItQjF7YmFja2dyb3VuZC1jb2xvcjojMEQzMkIyO30KCQkuZDItMjE2ODU1MjU5MyAuYmFja2dyb3VuZC1jb2xvci1CMntiYWNrZ3JvdW5kLWNvbG9yOiMwRDMyQjI7fQoJCS5kMi0yMTY4NTUyNTkzIC5iYWNrZ3JvdW5kLWNvbG9yLUIze2JhY2tncm91bmQtY29sb3I6I0UzRTlGRDt9CgkJLmQyLTIxNjg1NTI1OTMgLmJhY2tncm91bmQtY29sb3ItQjR7YmFja2dyb3VuZC1jb2xvcjojRTNFOUZEO30KCQkuZDItMjE2ODU1MjU5MyAuYmFja2dyb3VuZC1jb2xvci1CNXtiYWNrZ3JvdW5kLWNvbG9yOiNFREYwRkQ7fQoJCS5kMi0yMTY4NTUyNTkzIC5iYWNrZ3JvdW5kLWNvbG9yLUI2e2JhY2tncm91bmQtY29sb3I6I0Y3RjhGRTt9CgkJLmQyLTIxNjg1NTI1OTMgLmJhY2tncm91bmQtY29sb3ItQUEye2JhY2tncm91bmQtY29sb3I6IzRBNkZGMzt9CgkJLmQyLTIxNjg1NTI1OTMgLmJhY2tncm91bmQtY29sb3ItQUE0e2JhY2tncm91bmQtY29sb3I6I0VERjBGRDt9CgkJLmQyLTIxNjg1NTI1OTMgLmJhY2tncm91bmQtY29sb3ItQUE1e2JhY2tncm91bmQtY29sb3I6I0Y3RjhGRTt9CgkJLmQyLTIxNjg1NTI1OTMgLmJhY2tncm91bmQtY29sb3ItQUI0e2JhY2tncm91bmQtY29sb3I6I0VERjBGRDt9CgkJLmQyLTIxNjg1NTI1OTMgLmJhY2tncm91bmQtY29sb3ItQUI1e2JhY2tncm91bmQtY29sb3I6I0Y3RjhGRTt9CgkJLmQyLTIxNjg1NTI1OTMgLmNvbG9yLU4xe2NvbG9yOiMwQTBGMjU7fQoJCS5kMi0yMTY4NTUyNTkzIC5jb2xvci1OMntjb2xvcjojNjc2QzdFO30KCQkuZDItMjE2ODU1MjU5MyAuY29sb3ItTjN7Y29sb3I6Izk0OTlBQjt9CgkJLmQyLTIxNjg1NTI1OTMgLmNvbG9yLU40e2NvbG9yOiNDRkQyREQ7fQoJCS5kMi0yMTY4NTUyNTkzIC5jb2xvci1ONXtjb2xvcjojREVFMUVCO30KCQkuZDItMjE2ODU1MjU5MyAuY29sb3ItTjZ7Y29sb3I6I0VFRjFGODt9CgkJLmQyLTIxNjg1NTI1OTMgLmNvbG9yLU43e2NvbG9yOiNGRkZGRkY7fQoJCS5kMi0yMTY4NTUyNTkzIC5jb2xvci1CMXtjb2xvcjojMEQzMkIyO30KCQkuZDItMjE2ODU1MjU5MyAuY29sb3ItQjJ7Y29sb3I6IzBEMzJCMjt9CgkJLmQyLTIxNjg1NTI1OTMgLmNvbG9yLUIze2NvbG9yOiNFM0U5RkQ7fQoJCS5kMi0yMTY4NTUyNTkzIC5jb2xvci1CNHtjb2xvcjojRTNFOUZEO30KCQkuZDItMjE2ODU1MjU5MyAuY29sb3ItQjV7Y29sb3I6I0VERjBGRDt9CgkJLmQyLTIxNjg1NTI1OTMgLmNvbG9yLUI2e2NvbG9yOiNGN0Y4RkU7fQoJCS5kMi0yMTY4NTUyNTkzIC5jb2xvci1BQTJ7Y29sb3I6IzRBNkZGMzt9CgkJLmQyLTIxNjg1NTI1OTMgLmNvbG9yLUFBNHtjb2xvcjojRURGMEZEO30KCQkuZDItMjE2ODU1MjU5MyAuY29sb3ItQUE1e2NvbG9yOiNGN0Y4RkU7fQoJCS5kMi0yMTY4NTUyNTkzIC5jb2xvci1BQjR7Y29sb3I6I0VERjBGRDt9CgkJLmQyLTIxNjg1NTI1OTMgLmNvbG9yLUFCNXtjb2xvcjojRjdGOEZFO30uYXBwZW5kaXggdGV4dC50ZXh0e2ZpbGw6IzBBMEYyNX0ubWR7LS1jb2xvci1mZy1kZWZhdWx0OiMwQTBGMjU7LS1jb2xvci1mZy1tdXRlZDojNjc2QzdFOy0tY29sb3ItZmctc3VidGxlOiM5NDk5QUI7LS1jb2xvci1jYW52YXMtZGVmYXVsdDojRkZGRkZGOy0tY29sb3ItY2FudmFzLXN1YnRsZTojRUVGMUY4Oy0tY29sb3ItYm9yZGVyLWRlZmF1bHQ6IzBEMzJCMjstLWNvbG9yLWJvcmRlci1tdXRlZDojMEQzMkIyOy0tY29sb3ItbmV1dHJhbC1tdXRlZDojRUVGMUY4Oy0tY29sb3ItYWNjZW50LWZnOiMwRDMyQjI7LS1jb2xvci1hY2NlbnQtZW1waGFzaXM6IzBEMzJCMjstLWNvbG9yLWF0dGVudGlvbi1zdWJ0bGU6IzY3NkM3RTstLWNvbG9yLWRhbmdlci1mZzpyZWQ7fS5za2V0Y2gtb3ZlcmxheS1CMXtmaWxsOnVybCgjc3RyZWFrcy1kYXJrZXItZDItMjE2ODU1MjU5Myk7bWl4LWJsZW5kLW1vZGU6bGlnaHRlbn0uc2tldGNoLW92ZXJsYXktQjJ7ZmlsbDp1cmwoI3N0cmVha3MtZGFya2VyLWQyLTIxNjg1NTI1OTMpO21peC1ibGVuZC1tb2RlOmxpZ2h0ZW59LnNrZXRjaC1vdmVybGF5LUIze2ZpbGw6dXJsKCNzdHJlYWtzLWJyaWdodC1kMi0yMTY4NTUyNTkzKTttaXgtYmxlbmQtbW9kZTpkYXJrZW59LnNrZXRjaC1vdmVybGF5LUI0e2ZpbGw6dXJsKCNzdHJlYWtzLWJyaWdodC1kMi0yMTY4NTUyNTkzKTttaXgtYmxlbmQtbW9kZTpkYXJrZW59LnNrZXRjaC1vdmVybGF5LUI1e2ZpbGw6dXJsKCNzdHJlYWtzLWJyaWdodC1kMi0yMTY4NTUyNTkzKTttaXgtYmxlbmQtbW9kZTpkYXJrZW59LnNrZXRjaC1vdmVybGF5LUI2e2ZpbGw6dXJsKCNzdHJlYWtzLWJyaWdodC1kMi0yMTY4NTUyNTkzKTttaXgtYmxlbmQtbW9kZTpkYXJrZW59LnNrZXRjaC1vdmVybGF5LUFBMntmaWxsOnVybCgjc3RyZWFrcy1kYXJrLWQyLTIxNjg1NTI1OTMpO21peC1ibGVuZC1tb2RlOm92ZXJsYXl9LnNrZXRjaC1vdmVybGF5LUFBNHtmaWxsOnVybCgjc3RyZWFrcy1icmlnaHQtZDItMjE2ODU1MjU5Myk7bWl4LWJsZW5kLW1vZGU6ZGFya2VufS5za2V0Y2gtb3ZlcmxheS1BQTV7ZmlsbDp1cmwoI3N0cmVha3MtYnJpZ2h0LWQyLTIxNjg1NTI1OTMpO21peC1ibGVuZC1tb2RlOmRhcmtlbn0uc2tldGNoLW92ZXJsYXktQUI0e2ZpbGw6dXJsKCNzdHJlYWtzLWJyaWdodC1kMi0yMTY4NTUyNTkzKTttaXgtYmxlbmQtbW9kZTpkYXJrZW59LnNrZXRjaC1vdmVybGF5LUFCNXtmaWxsOnVybCgjc3RyZWFrcy1icmlnaHQtZDItMjE2ODU1MjU5Myk7bWl4LWJsZW5kLW1vZGU6ZGFya2VufS5za2V0Y2gtb3ZlcmxheS1OMXtmaWxsOnVybCgjc3RyZWFrcy1kYXJrZXItZDItMjE2ODU1MjU5Myk7bWl4LWJsZW5kLW1vZGU6bGlnaHRlbn0uc2tldGNoLW92ZXJsYXktTjJ7ZmlsbDp1cmwoI3N0cmVha3MtZGFyay1kMi0yMTY4NTUyNTkzKTttaXgtYmxlbmQtbW9kZTpvdmVybGF5fS5za2V0Y2gtb3ZlcmxheS1OM3tmaWxsOnVybCgjc3RyZWFrcy1ub3JtYWwtZDItMjE2ODU1MjU5Myk7bWl4LWJsZW5kLW1vZGU6Y29sb3ItYnVybn0uc2tldGNoLW92ZXJsYXktTjR7ZmlsbDp1cmwoI3N0cmVha3Mtbm9ybWFsLWQyLTIxNjg1NTI1OTMpO21peC1ibGVuZC1tb2RlOmNvbG9yLWJ1cm59LnNrZXRjaC1vdmVybGF5LU41e2ZpbGw6dXJsKCNzdHJlYWtzLWJyaWdodC1kMi0yMTY4NTUyNTkzKTttaXgtYmxlbmQtbW9kZTpkYXJrZW59LnNrZXRjaC1vdmVybGF5LU42e2ZpbGw6dXJsKCNzdHJlYWtzLWJyaWdodC1kMi0yMTY4NTUyNTkzKTttaXgtYmxlbmQtbW9kZTpkYXJrZW59LnNrZXRjaC1vdmVybGF5LU43e2ZpbGw6dXJsKCNzdHJlYWtzLWJyaWdodC1kMi0yMTY4NTUyNTkzKTttaXgtYmxlbmQtbW9kZTpkYXJrZW59LmxpZ2h0LWNvZGV7ZGlzcGxheTogYmxvY2t9LmRhcmstY29kZXtkaXNwbGF5OiBub25lfV1dPjwvc3R5bGU+PGcgY2xhc3M9ImMzZHBkR05vIj48ZyBjbGFzcz0ic2hhcGUiID48cmVjdCB4PSIwLjAwMDAwMCIgeT0iMC4wMDAwMDAiIHdpZHRoPSIyNjkuMDAwMDAwIiBoZWlnaHQ9IjY2LjAwMDAwMCIgc3Ryb2tlPSIjMEQzMkIyIiBmaWxsPSIjRjdGOEZFIiBjbGFzcz0iIHN0cm9rZS1CMSBmaWxsLUI2IiBzdHlsZT0ic3Ryb2tlLXdpZHRoOjI7IiAvPjwvZz48dGV4dCB4PSIxMzQuNTAwMDAwIiB5PSIzOC41MDAwMDAiIGZpbGw9IiMwQTBGMjUiIGNsYXNzPSJ0ZXh0LWJvbGQgZmlsbC1OMSIgc3R5bGU9InRleHQtYW5jaG9yOm1pZGRsZTtmb250LXNpemU6MTZweCI+U3dpdGNoIHByb2R1Y3RzIHZpYSB0aGUgc2lkZWJhcjwvdGV4dD48L2c+PGcgY2xhc3M9IlltOXZhMjFoY21zPSI+PGcgY2xhc3M9InNoYXBlIiA+PHJlY3QgeD0iMzI5LjAwMDAwMCIgeT0iMC4wMDAwMDAiIHdpZHRoPSIyMTYuMDAwMDAwIiBoZWlnaHQ9IjY2LjAwMDAwMCIgc3Ryb2tlPSIjMEQzMkIyIiBmaWxsPSIjRjdGOEZFIiBjbGFzcz0iIHN0cm9rZS1CMSBmaWxsLUI2IiBzdHlsZT0ic3Ryb2tlLXdpZHRoOjI7IiAvPjwvZz48dGV4dCB4PSI0MzcuMDAwMDAwIiB5PSIzOC41MDAwMDAiIGZpbGw9IiMwQTBGMjUiIGNsYXNzPSJ0ZXh0LWJvbGQgZmlsbC1OMSIgc3R5bGU9InRleHQtYW5jaG9yOm1pZGRsZTtmb250LXNpemU6MTZweCI+T3BlbiBhIHNhdmVkIGJvb2ttYXJrPC90ZXh0PjwvZz48ZyBjbGFzcz0iYzJoaGNtVmtYMnhwYm1zPSI+PGcgY2xhc3M9InNoYXBlIiA+PHJlY3QgeD0iNjA1LjAwMDAwMCIgeT0iMC4wMDAwMDAiIHdpZHRoPSIxNzcuMDAwMDAwIiBoZWlnaHQ9IjY2LjAwMDAwMCIgc3Ryb2tlPSIjMEQzMkIyIiBmaWxsPSIjRjdGOEZFIiBjbGFzcz0iIHN0cm9rZS1CMSBmaWxsLUI2IiBzdHlsZT0ic3Ryb2tlLXdpZHRoOjI7IiAvPjwvZz48dGV4dCB4PSI2OTMuNTAwMDAwIiB5PSIzOC41MDAwMDAiIGZpbGw9IiMwQTBGMjUiIGNsYXNzPSJ0ZXh0LWJvbGQgZmlsbC1OMSIgc3R5bGU9InRleHQtYW5jaG9yOm1pZGRsZTtmb250LXNpemU6MTZweCI+T3BlbiBhIHNoYXJlZCBsaW5rPC90ZXh0PjwvZz48ZyBjbGFzcz0iY21Wc2IyRmsiPjxnIGNsYXNzPSJzaGFwZSIgPjxyZWN0IHg9Ijg0Mi4wMDAwMDAiIHk9IjAuMDAwMDAwIiB3aWR0aD0iMjE0LjAwMDAwMCIgaGVpZ2h0PSI2Ni4wMDAwMDAiIHN0cm9rZT0iIzBEMzJCMiIgZmlsbD0iI0Y3RjhGRSIgY2xhc3M9IiBzdHJva2UtQjEgZmlsbC1CNiIgc3R5bGU9InN0cm9rZS13aWR0aDoyOyIgLz48L2c+PHRleHQgeD0iOTQ5LjAwMDAwMCIgeT0iMzguNTAwMDAwIiBmaWxsPSIjMEEwRjI1IiBjbGFzcz0idGV4dC1ib2xkIGZpbGwtTjEiIHN0eWxlPSJ0ZXh0LWFuY2hvcjptaWRkbGU7Zm9udC1zaXplOjE2cHgiPlJlbG9hZCB0aGUgY3VycmVudCBwYWdlPC90ZXh0PjwvZz48ZyBjbGFzcz0iWjNWaGNtUT0iPjxnIGNsYXNzPSJzaGFwZSIgPjxyZWN0IHg9IjM1OC4wMDAwMDAiIHk9IjE2Ni4wMDAwMDAiIHdpZHRoPSI0MTUuMDAwMDAwIiBoZWlnaHQ9IjY2LjAwMDAwMCIgc3Ryb2tlPSIjMEQzMkIyIiBmaWxsPSIjRjdGOEZFIiBjbGFzcz0iIHN0cm9rZS1CMSBmaWxsLUI2IiBzdHlsZT0ic3Ryb2tlLXdpZHRoOjI7IiAvPjwvZz48dGV4dCB4PSI1NjUuNTAwMDAwIiB5PSIyMDQuNTAwMDAwIiBmaWxsPSIjMEEwRjI1IiBjbGFzcz0idGV4dC1ib2xkIGZpbGwtTjEiIHN0eWxlPSJ0ZXh0LWFuY2hvcjptaWRkbGU7Zm9udC1zaXplOjE2cHgiPlJvdXRlIGd1YXJkIGNoZWNrcyBldmVyeSBhcnJpdmFsLCBub3QganVzdCB0aGUgc3dpdGNoPC90ZXh0PjwvZz48ZyBjbGFzcz0iS0hOM2FYUmphQ0F0Sm1kME95Qm5kV0Z5WkNsYk1GMD0iPjxtYXJrZXIgaWQ9Im1rLWQyLTIxNjg1NTI1OTMtMzQ4ODM3ODEzNCIgbWFya2VyV2lkdGg9IjEwLjAwMDAwMCIgbWFya2VySGVpZ2h0PSIxMi4wMDAwMDAiIHJlZlg9IjcuMDAwMDAwIiByZWZZPSI2LjAwMDAwMCIgdmlld0JveD0iMC4wMDAwMDAgMC4wMDAwMDAgMTAuMDAwMDAwIDEyLjAwMDAwMCIgb3JpZW50PSJhdXRvIiBtYXJrZXJVbml0cz0idXNlclNwYWNlT25Vc2UiPiA8cG9seWdvbiBwb2ludHM9IjAuMDAwMDAwLDAuMDAwMDAwIDEwLjAwMDAwMCw2LjAwMDAwMCAwLjAwMDAwMCwxMi4wMDAwMDAiIGZpbGw9IiMwRDMyQjIiIGNsYXNzPSJjb25uZWN0aW9uIGZpbGwtQjEiIHN0cm9rZS13aWR0aD0iMiIgLz4gPC9tYXJrZXI+PHBhdGggZD0iTSAxMzQuNTAwMDAwIDY4LjAwMDAwMCBDIDEzNC41MDAwMDAgMTA2LjAwMDAwMCAxODYuMzAwMDAzIDEyNi4wMDAwMDAgMzg5LjU3MjUxNiAxNjUuMjQxNzk4IiBzdHJva2U9IiMwRDMyQjIiIGZpbGw9Im5vbmUiIGNsYXNzPSJjb25uZWN0aW9uIHN0cm9rZS1CMSIgc3R5bGU9InN0cm9rZS13aWR0aDoyOyIgbWFya2VyLWVuZD0idXJsKCNtay1kMi0yMTY4NTUyNTkzLTM0ODgzNzgxMzQpIiBtYXNrPSJ1cmwoI2QyLTIxNjg1NTI1OTMpIiAvPjwvZz48ZyBjbGFzcz0iS0dKdmIydHRZWEpySUMwbVozUTdJR2QxWVhKa0tWc3dYUT09Ij48cGF0aCBkPSJNIDQzNy4wMDAwMDAgNjguMDAwMDAwIEMgNDM3LjAwMDAwMCAxMDYuMDAwMDAwIDQ1Mi4zOTk5OTQgMTI2LjAwMDAwMCA1MTAuNjQ1MjMwIDE2My44MjE1NzgiIHN0cm9rZT0iIzBEMzJCMiIgZmlsbD0ibm9uZSIgY2xhc3M9ImNvbm5lY3Rpb24gc3Ryb2tlLUIxIiBzdHlsZT0ic3Ryb2tlLXdpZHRoOjI7IiBtYXJrZXItZW5kPSJ1cmwoI21rLWQyLTIxNjg1NTI1OTMtMzQ4ODM3ODEzNCkiIG1hc2s9InVybCgjZDItMjE2ODU1MjU5MykiIC8+PC9nPjxnIGNsYXNzPSJLSE5vWVhKbFpGOXNhVzVySUMwbVozUTdJR2QxWVhKa0tWc3dYUT09Ij48cGF0aCBkPSJNIDY5My41MDAwMDAgNjguMDAwMDAwIEMgNjkzLjUwMDAwMCAxMDYuMDAwMDAwIDY3OC4wOTk5NzYgMTI2LjAwMDAwMCA2MTkuODU0NzY5IDE2My44MjE1NzgiIHN0cm9rZT0iIzBEMzJCMiIgZmlsbD0ibm9uZSIgY2xhc3M9ImNvbm5lY3Rpb24gc3Ryb2tlLUIxIiBzdHlsZT0ic3Ryb2tlLXdpZHRoOjI7IiBtYXJrZXItZW5kPSJ1cmwoI21rLWQyLTIxNjg1NTI1OTMtMzQ4ODM3ODEzNCkiIG1hc2s9InVybCgjZDItMjE2ODU1MjU5MykiIC8+PC9nPjxnIGNsYXNzPSJLSEpsYkc5aFpDQXRKbWQwT3lCbmRXRnlaQ2xiTUYwPSI+PHBhdGggZD0iTSA5NDkuMDAwMDAwIDY4LjAwMDAwMCBDIDk0OS4wMDAwMDAgMTA2LjAwMDAwMCA5MDIuNzk5OTg4IDEyNi4wMDAwMDAgNzIxLjkwOTQ2OCAxNjUuMTUzNzk1IiBzdHJva2U9IiMwRDMyQjIiIGZpbGw9Im5vbmUiIGNsYXNzPSJjb25uZWN0aW9uIHN0cm9rZS1CMSIgc3R5bGU9InN0cm9rZS13aWR0aDoyOyIgbWFya2VyLWVuZD0idXJsKCNtay1kMi0yMTY4NTUyNTkzLTM0ODgzNzgxMzQpIiBtYXNrPSJ1cmwoI2QyLTIxNjg1NTI1OTMpIiAvPjwvZz48bWFzayBpZD0iZDItMjE2ODU1MjU5MyIgbWFza1VuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeD0iLTEwMSIgeT0iLTEwMSIgd2lkdGg9IjEyNTgiIGhlaWdodD0iNDM0Ij4KPHJlY3QgeD0iLTEwMSIgeT0iLTEwMSIgd2lkdGg9IjEyNTgiIGhlaWdodD0iNDM0IiBmaWxsPSJ3aGl0ZSI+PC9yZWN0PgoKPC9tYXNrPjwvc3ZnPjwvc3ZnPgo=" alt="Architecture diagram" style={{maxWidth:"100%",height:"auto",display:"block",margin:"2em auto"}} />

A bookmark, a shared link, and a plain page reload can each land a zopcloud user on that same restricted page with no switch action involved at all, so fixing the switcher alone would have left three of those four paths completely unprotected. The guard itself uses a prefix match against the whole route family rather than an enumerated list of specific pages, which means a seventh route added under that path later stays covered automatically instead of needing to be remembered and added by hand.

## A Route Guard's Signal Isn't the Question It's Answering

The second bug hit ZopDay's [setup wizard](https://zop.dev/resources/blogs/self-service-terraform-8-modules-60-percent-platform-tickets), which had started forcing itself on every visit instead of only appearing for a genuinely new organization coming out of onboarding. The fix restores the original behavior: the wizard is reachable from onboarding again, and the /setup route stays directly reachable on its own.

| What the guard actually checks | What it was being used to mean | Where that broke |
|---|---|---|
| Does this org have an active cloud account | Is this a first-run user | An org whose accounts went inactive, failed, or were archived reads as brand new |
| Has this browser dismissed the wizard before | Has this specific person seen this specific org's wizard | Dismissing it in one org silences it in a different org on the same browser that still needs it |

The underlying problem is that a query filtering on active-status accounts answers a narrower question than the one it was standing in for. An organization can have zero rows matching status equals active for entirely legitimate reasons that have nothing to do with being new. Onboarding, by contrast, knows something a route guard structurally cannot reconstruct after the fact: that this exact organization was created by this exact person, right now.

## A Dismiss Flag Scoped to the Wrong Thing

The second half of that same bug came from where the wizard's own dismissal state lived. It was stored per browser rather than per organization, so a person who dismissed the wizard once while working inside one organization found it silently gone in a second, unrelated organization on the same machine that genuinely still needed to show it. A flag meant to represent "this specific org's setup has been seen" was actually representing "this browser has seen a setup wizard at some point," which is a different and much less useful fact.

One case was named explicitly in the fix rather than quietly absorbed into it: someone who creates their organization through ZopNight's own onboarding, then picks ZopDay at the product picker, never passes through ZopDay's own onboarding flow at all. Properly closing that gap needs a signal scoped to a specific person and a specific organization together, not a route guard operating on either alone, and the release notes are explicit that this one remains open rather than claiming it's handled.

## What Stayed Deliberately Unchanged

A short, explicit list of things this fix left alone is itself part of the release: the DEFAULT_AFTER_CREATE constant still points to /setup, the branch that redirects an org with no cloud accounts into onboarding is untouched, /setup remains a directly reachable route on its own, the zopcloud infrastructure guard from the first bug fix stays exactly as it was, and the existing useHasCloudAccounts hook keeps its current behavior.

Naming what wasn't touched is as useful to a reader as naming what was. It tells the next engineer working in this area exactly which assumptions are still load-bearing and which ones were the actual site of the bug, rather than leaving them to rediscover that boundary by breaking it again.
