v1.5.17
When Apple sign-in succeeds but the pairing tunnel can't come up — corporate firewall, TLS-intercepting proxy, managed-Mac file block — Push now tells you so, immediately, with the specific cause and something actionable to send to IT.
What's changed
All post-sign-in failures produce the same honest UX
Previously, only one of the three common corp-Mac failure modes (the managed-Mac local-write case) auto-opened a dialog explaining what went wrong. The other two — corporate firewall blocking push-relay.com, or a TLS-intercepting proxy breaking our handshake — landed silently in the pairing-status endpoint and the only user signal was a quiet red relay dot in the sidebar corner. Browser said Success, sidebar showed your avatar and name, and there was no obvious reason the iPhone still couldn't find the Mac.
1.5.17 closes the loop.
After a successful sign-in poll, the Mac briefly watches the pairing tunnel come up (up to ~4s). If it enters a blocked state — network unreachable, TLS verification failure, auth rejection, or a 5xx from our pairing server — the failure sheet auto-opens immediately, while you still have the browser's "Success" page fresh in mind. The sheet carries per-case copy: the actual fs path when it's a local write, the specific firewall hint when it's a network block, the TLS exclusion guidance when it's a proxy re-signing certs. The same diagnostic you'd need to hand your IT team is right there, copy-selectable.
Sidebar now honestly reflects what's working
Before 1.5.17, a sign-in that succeeded server-side but failed to bring up the tunnel left the sidebar showing "you're signed in" (avatar + name + red dot). That matched what the config file said, not what the user actually cared about — their iPhone still can't reach the Mac.
Now the sidebar branches on "effectively connected" instead of "api key present." If the sign-in didn't bring up the pairing tunnel, the footer collapses back to the same blue "Connect Apple Account" button a fresh install shows, plus an orange info-i that re-opens the failure sheet. The api key stays in config so a retry after IT unblocks doesn't need a fresh Supabase round-trip, but the UI stops claiming success until the tunnel is actually up.
Net effect: a user hitting any of the three known corp-Mac walls sees the same shape. Sign-in button, info-i beside it, auto-opened sheet with specific cause. No guessing which surface has the real information.
Notes
- No data migrations. No user action required beyond updating.
- The sheet's network/TLS copy is new; the existing local-save copy is unchanged from 1.5.11.
- Full investigation and case taxonomy:
push/macos/investigations/2026-04-20-corp-mac-pairing-failure-taxonomy.md.