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]