6.0.0-RC7
6/28/26

Known ActiveSync Issues

Most entries here describe client bugs, protocol limitations, or deployment misconfiguration -- not Horde application defects. When in doubt, enable per-device ActiveSync logging and check the web server access log before assuming a server bug.

See also ActiveSync (setup, Autodiscover, troubleshooting) and ActiveSync Feature Grid (what Horde supports by EAS version).

Deployment and Autodiscover

These are the most common operator issues mistaken for Horde bugs.

Autodiscover fails despite Horde working on the mail host

Autodiscover is keyed off the email domain (user@example.com -> example.com), not necessarily the hostname where Horde lives (mail.example.com). If autodiscover.example.com or example.com points at a vhost without rpc.php routing, the client receives 404 and setup fails.

Other frequent causes:

  • Rewrite rules are case-sensitive -- iOS sends /Autodiscover/Autodiscover.xml (lowercase d in the middle). Rules must use [NC] or equivalent.
  • A non-Horde vhost includes ActiveSync rewrites to /horde/rpc.php that does not exist in that docroot, which blocks RedirectMatch rules that should send traffic to the real Horde host.
  • Missing routing for Autodiscover v2 JSON (GET .../autodiscover.json/...) -- a 404 here is normal; clients fall back to v1 XML. v1 must return 401 without credentials when routing is correct.

See the Autodiscover section on ActiveSync and verify with curl (401 on POST .../autodiscover.xml = routing OK).

Autodiscover not supported or implemented incorrectly on the client

Not all devices support Autodiscover; some send broken requests (e.g. older Android builds passing the full email address as the HTTP Basic username without XML body). Horde works around several of these where possible. If Autodiscover still fails, configure the account manually -- usually only the server hostname and credentials beyond the email address.

General synchronization

NOTICE: «Previous request processing for synckey ... failed to be accepted by the client»

This appears in the Horde log when a client re-sends a request with a SyncKey the server has already advanced. The client either never received the prior response or rejected it. The library removes the stale state and retries.

If this is occasional and sync works, it is normal. Frequent repetition usually means network problems, proxy timeouts, or a buggy client stuck in a loop -- check reverse-proxy Ping timeouts and per-device logs.

Outlook 2013: «This folder hasn't yet been updated»

Outlook 2013 over EAS may show This folder hasn't yet been updated, connection attempt even when sync is fine. Often caused by the Outlook Mail Notifier add-in (OutlookChangeNotifierAddIn.dll from Apple Mobile Device Support). Disabling that add-in resolves it.

Provisioning loops

Some clients enter a loop when provisioning is required but mishandle policy key updates (historically certain iOS 4.3 builds). If a device cannot complete setup when provisioning is Force, try Allow or None for testing, or use per-user permissions to exempt the account.

Client throttle after repeated KEYMISMATCH / state resets

Broken clients that ignore server state resets may loop until the server escalates to KEYMISMATCH or errors. Horde 6 includes guards for some loop types (e.g. FOLDERSYNC_REQUIRED spam); persistent loops are still ultimately a client or provisioning issue -- remove device state in admin UI and re-pair after fixing the underlying cause.

Improved in Horde 6 (may no longer apply)

If you are on an older Horde release, these may still bite you; on Horde 6 / ActiveSync 3.x they are largely addressed:

Symptom Horde 6 change
iOS mail Ping loops / duplicate mail sync PING watermark separated from SYNC modseq
Endless FolderSync / status 12 loops FOLDERSYNC_REQUIRED loop guard in sync cache
Corrupt device state / mysterious KEYMISMATCH Corrupt sync_data rejected and repaired; SQL/Mongo row locks
iOS Notes multiplexing oddities Modern iOS Notes collection behaviour updated
Recurring calendar exceptions on newer clients EAS **16.0** instance model when client negotiates >= 16.0

Clients stuck on EAS 14.x or below do not benefit from the calendar instance improvements.

Mail

iOS Mail: «This message was downloaded as plaintext»

Large messages may show This message was downloaded as plain text with a broken «download full message» action. This is an iOS client limitation. Opening attachments individually usually works.

Cannot delete mail on iOS

iOS may try to move messages to a local Trash folder instead of issuing a server move. If no Trash folder is configured on the device, delete fails. Configure IMP to use a Trash mailbox and ensure the device syncs that folder.

Duplicate citation lines in replies

Some clients prepend their own «On ... wrote:» line while ActiveSync Smart Reply also includes quoted history, producing duplicates. Client-side behaviour; not harmful to data on the server.

Broken Autodiscover auth on some Android clients

Some Android builds send the email address as the HTTP username without a valid Autodiscover XML body. Horde attempts workarounds; manual account setup may still be required.

Cyrus IMAP BINARY extension

ActiveSync mail sync may fail against Cyrus IMAP 2.4.x before 2.4.17 due to a BINARY extension bug (Cyrus #3718). Workaround in IMP backend config:

$servers['advanced']['capability_ignore'] = ['BINARY'];

Calendar

Yearly recurrence by day-of-year

EAS does not support «every X years on day N of the year» (1-365/366). Only same calendar date yearly, or nth-weekday-of-month patterns, are defined. Horde maps unsupported patterns to «once every X years» without correct day-of-year placement.

Recurring event exceptions on iOS

Historically iOS 6.x-7.x mishandled exceptions (using internal GUIDs, corrupting series). Modern iOS negotiating EAS 16.0+ with Horde 6 uses the instance model and is greatly improved, but edge cases remain -- especially on series with many exceptions or cross-timezone all-day events. See Apple and Microsoft discussions: Apple thread, MS KB 2563324.

Truncated event descriptions on iOS

iOS may sync a truncated calendar body and later send that truncated text back on edit, overwriting the full description on the server. EAS 16.0 defines ItemOperations fetches for calendar bodies, but clients must request them -- iOS has not reliably done so as of recent testing. Avoid editing long descriptions on device when truncation is suspected.

Meeting invitations and COUNTER proposals

EAS 16.1 propose-new-time (METHOD=COUNTER) requires clients that negotiate >= 16.1. Older clients only support accept/decline/tentative without counter proposals.

Contacts

Contact photo removed after edit on iOS

Some iOS versions send an empty Picture element when a contact is edited, clearing the photo in Turba. Reported around iOS 6-9; behaviour has regressed in some later versions. Workaround: re-add photo from the web UI or avoid editing photo-bearing contacts on device.

Horde skips picture updates when iOS sends no Picture tag and the client does not advertise incremental contact updates (ghosted support).

Birthdays offset by one or more days

ActiveSync does not standardise the time-of-day for birthday fields. Clients send midnight UTC, local midnight, or other variants. Horde adjusts by detected client where possible (Horde_ActiveSync_Device birthday handling); mismatches can still appear on uncommon clients or after iOS/Android updates.

Tasks

Outlook Regenerate=1 not supported

Outlook may send Regenerate=1 on recurring tasks (regenerate next instance after completion). Horde/Nag use completions[] and fixed RRULE semantics -- regenerated due dates are not implemented. Completed instances sync; regenerated series behaviour on Outlook may diverge.

Protocol / server limitations (not client bugs)

Topic Status
SMS sync Stubbed -- prevents broken clients from breaking mail
Conversation view / segments Not implemented
Nickname cache Not implemented
ItemOperations:Schema Ignored -- no known client requires it
HTTP 503 / X-MS-Throttle Not implemented

Historical client issues (legacy reference)

These affected old clients and are listed for archive searches only. Current iOS/Android versions are unlikely to hit them:

  • iOS 6 push mail -- push failed; meeting response bugs (fixed in iOS 6.0.1+ for many cases).
  • iOS 4.2.1 contacts -- picture handling without ghosted announcement.
  • Windows Mobile / Android 2.x -- see removed device matrix on ActiveSync; not tested on Horde 6.

When reporting a new issue, include EAS protocol version (MS-ASProtocolVersion), device type, per-device log excerpt, and whether Autodiscover or manual setup was used.