2.79.4 (2026-08-25)
Upgrade note
2.79.3 extended the authentication-failure safety net to OAuth2 accounts, and its note said re-authorizing a disabled account lifts the flag and reconnects it. That was not true of the path most operators and end users actually take. This release is what makes it true, so if 2.79.3 switched off a batch of accounts on your instance, they become recoverable after this upgrade.
Re-authorizing through the hosted authentication form goes through account creation, which never touched the flag: an OAuth2 account has no imap block of its own, so the synthesized {"disabled":true} blob survived every re-authorization. The one path that did lift it, a re-authorized PUT /v1/account/{account}, required the account to still be in an error state, and a switched-off account is not in one - it reports unset. For Gmail API and Outlook accounts there was no admin UI route to the flag either, since the IMAP card carrying the "Disable IMAP" checkbox is not rendered for them. Recovery is now either re-authorization or the new "Resume syncing" button on the account page, which works for every account type.
Three changes are visible from outside:
authFailureDisabledAt, a new read-only field on the account object and on the accounts listing, carrying the time the safety net switched the account off, ornull.imap.disabledis also the operator's own send-only switch, so telling an automatically parked account from a deliberately silent one previously meant pattern-matching the text oflastError.description. Having it on the listing means a fleet-wide sweep no longer has to open every account.- Reconnect refuses rather than pretending. A reconnect cannot resume a parked account: the client checks the flag before it dials out, so the dispatch was always a no-op.
PUT /v1/account/{account}/reconnectnow answers{"reconnect": false}, which it already documented as a possible reply, and the admin UI's Reconnect button is disabled for such an account. - The admin badge changed. 2.79.3's note told you to look for "Connection failed". A switched-off account now reads "Syncing switched off", and a deliberately send-only account is no longer badged "Connection failed" because it once failed to connect.
Separately, the SBOM link on /admin/legal has answered signed-in admins with a 401 since 2.79.2, when /sbom.json moved behind the API-token gate. The download is now served from /admin/legal/sbom.json, inside the EENGINE_ADMIN_ACCESS_ADDRESSES perimeter. The token gate on /sbom.json is unchanged.