Outlook 2021/365 (v2408 and newer) changes EAS DeviceId after restart, causing Z-Push to treat it as a new device and resync/empty mailbox
Describe the bug When connecting Outlook 2021/365 (v2408) via Exchange ActiveSync to a Z-Push server, the first synchronization works normally and all emails are displayed.
However, after closing and reopening Outlook, all items disappear from the mailbox view. Z-Push logs show that Outlook registers as a new device (different DeviceId) on every restart. Because the device ID is part of the state key in Z-Push, the server treats it as a brand new device with no sync state, and Outlook shows an empty mailbox until it re-syncs everything.
This does not happen with Outlook 2016/2019, where the DeviceId remains stable.
To Reproduce 1. Configure an Outlook 2021 or 365 (v2408+) profile using Exchange ActiveSync to connect to Z-Push. 2. Wait for the first synchronization to complete (all mail items appear). 3. Close Outlook completely. 4. Reopen Outlook. 5. Observe that the mailbox is empty until items are re-synced.
On the server side, run:
php /usr/local/z-push/z-push-admin.php -a list -u
You will see that a new DeviceId entry is created after each restart.
Expected behavior Outlook should keep the same EAS DeviceId for a given profile, so Z-Push can reuse the existing sync state. Mail items should remain in the client after reopening Outlook.
Actual behavior: • Outlook generates a new DeviceId on every restart. • Z-Push treats it as a new device, discards the old state, and starts a fresh sync. • As a result, the mailbox view is cleared temporarily until re-sync completes.
Logs .
Server:
- OS: [Linux Debian]
- PHP Version: [8.3]
- Backend for: [Mail-in-a-Box (Dovecod, Nextcloud)]
Client:
- Device: [PC]
- OS: [Win 11]
- Mail App [Outlook]
- Version [2021 / 365]