Page MenuHomePhorge

Possibly a bug when recurring events makes Outlook with ActiveSync switch to permanent disconnected mode
Closed, ResolvedPublic

Description

I am investigating what can cause Outlook 2013 with ActiveSync account switch to disconnected mode without any way of getting it back online. Steps to reproduce:

  1. Create Outlook ActiveSync account
  2. Sync everything
  3. Go to Roundcube and create an event, which is recurring every week, until some date. Important bits are: do not select a week day of recurrence and select the until date
  4. Go to Outlook and click send receive. Outlook will display "Updating Calendar" "Connected" in status bar forever. Restart Outlook. Now it will display "The folder has not yet been updated" "Disconnected". There is no way you can get Outlook connected again, only recreating account.

Looking at console logs I can see:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE AirSync PUBLIC "-//AIRSYNC//DTD AirSync//EN" "http://www.microsoft.com/">
<Sync xmlns="uri:AirSync" xmlns:Syncroton="uri:Syncroton" xmlns:AirSyncBase="uri:AirSyncBase" xmlns:Calendar="uri:Calendar">
  <Collections>
    <Collection xmlns:default="uri:Calendar">
      <Class>Calendar</Class>
      <SyncKey>4</SyncKey>
      <CollectionId>cca1b81c734abbcd669bea90d23e08ae</CollectionId>
      <Status>1</Status>
      <Commands xmlns:default="uri:Calendar">
        <Add xmlns:default="uri:Calendar">
          <ServerId>250701190EA01E40A210395AAED2E51A-D504389B835C28BC</ServerId>
          <ApplicationData>
            <Calendar:Timezone xmlns="uri:Calendar">iP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoABgAFABUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMABgAFABQAAAAAAAAAxP///w==</Calendar:Timezone>
            <Calendar:StartTime xmlns="uri:Calendar">20170628T040000Z</Calendar:StartTime>
            <Calendar:BusyStatus xmlns="uri:Calendar">2</Calendar:BusyStatus>
            <Calendar:DtStamp xmlns="uri:Calendar">20170626T180951Z</Calendar:DtStamp>
            <Calendar:EndTime xmlns="uri:Calendar">20170628T050000Z</Calendar:EndTime>
            <Calendar:Location xmlns="uri:Calendar">Nowhere</Calendar:Location>
            <Calendar:Subject xmlns="uri:Calendar">Testing recurence</Calendar:Subject>
            <Calendar:UID xmlns="uri:Calendar">250701190EA01E40A210395AAED2E51A-D504389B835C28BC</Calendar:UID>
            <Calendar:OrganizerName xmlns="uri:Calendar">Systems, Kolab</Calendar:OrganizerName>
            <Calendar:OrganizerEmail xmlns="uri:Calendar">kolab.systems@domain.tld</Calendar:OrganizerEmail>
            <Calendar:MeetingStatus xmlns="uri:Calendar">0</Calendar:MeetingStatus>
            <Calendar:Recurrence xmlns="uri:Calendar">
              <Calendar:Type>1</Calendar:Type>
              <Calendar:DayOfWeek>0</Calendar:DayOfWeek>
              <Calendar:Interval>1</Calendar:Interval>
              <Calendar:Until>20171031T060000Z</Calendar:Until>
            </Calendar:Recurrence>
          </ApplicationData>
        </Add>
      </Commands>
    </Collection>
  </Collections>
</Sync>

The important part is CalendarRecurrence XML section. 2 observations:

  • <Calendar:DayOfWeek>0</Calendar:DayOfWeek> that doesn't look valid according to ActiveSync specification, but looking at the other events I can see that some of them also have DayOfWeek set to 0, but they are sync'ed with no problems
  • <Calendar:Until>20171031T060000Z</Calendar:Until> none of the events which have DayOfWeek set to 0 have the Until defined. If I delete the Until part from the event in Kolab, the event doesn't cause Outlook to get into disconnected mode anymore.

I suppose there is a bug creating ActiveSync xml.
kolab-syncroton-2.3.5-4.1.el7.kolab_16.noarch

Details

Ticket Type
Task

Event Timeline

adomaitis created this task.
adomaitis added a project: Syncroton.
adomaitis added a subscriber: Syncroton Developers.

@adomaitis Looks like both DayOfWeek and Until are optional. In this case I think we just should not include DayOfWeek in the response. Did you test that?