Skip to content

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 #167

@fabiodepin

Description

@fabiodepin

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]

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions