87b645f52c
findExistingCanonicalChat() swallowed every lookup error and returned null — indistinguishable from 'this bot has no Bot Chat yet' — so a transient RPC failure against a just-restarted backend (the exact post-desktop-update window) sent createCanonicalChat() straight to session.create, minting a fresh 'Bot Chat' while the real one (data intact, hidden) still held the canonical title. Users experienced this as bots losing all context after every desktop update. The lookup now fails CLOSED: a failed registry consultation throws, both open paths surface their existing 'try again' toast, and session.create can never fire off an unknown ownership state. Tests: two new VM-executed regression tests (sabotage-verified — both fail with the old fail-open catch); hide-bot-chats source-shape regex updated for the new layout. 364/364 plugin tests green.