Invalid TimeZone ID []



  • Firstly, great product, thanks.

    Over the last couple of weeks, I've been getting an "Invalid TimeZone ID []" notification on my android phone. (Based on the debug info, it appears to be receiving a null value where it expects there to be a code representing the timezone.) I connect to a Synology DS215+ over https via a dyndns URL. Everything else seems to be working fine, but I have to swipe it away ever hour! I've checked that the timezone on the Synology is set correctly, and I've also looked through the WebDAV/CalDAV options on the Synology, to no avail.

    Any ideas?


  • developer

    Hello!

    Can you please provide your DAVdroid debug info?



  • Thanks for the prompt reply. I've replaced my e-mail address and domain, otherwise this is the complete debug info.

    --- BEGIN DEBUG INFO ---
    Account name: EMAIL@EMAIL.COM
    Authority: org.dmfs.tasks
    
    REMOTE RESOURCE:
    https://DOMAIN.COM:5006/homes/mike/Calendar/Mike/f4c45cc0-d90f-4197-b976-b0dd40d798fa.ics
    
    EXCEPTION:
    java.lang.IllegalArgumentException: Invalid TimeZone ID: []
    	at org.apache.commons.lang3.Validate.notBlank(Validate.java:454)
    	at net.fortuna.ical4j.model.TimeZoneRegistryImpl.getTimeZone(TimeZoneRegistryImpl.java:165)
    	at net.fortuna.ical4j.data.CalendarBuilder$ContentHandlerImpl.parameter(CalendarBuilder.java:276)
    	at net.fortuna.ical4j.data.CalendarParserImpl$ParameterParser.parse(CalendarParserImpl.java:367)
    	at net.fortuna.ical4j.data.CalendarParserImpl$ParameterParser.access$1800(CalendarParserImpl.java:322)
    	at net.fortuna.ical4j.data.CalendarParserImpl$ParameterListParser.parse(CalendarParserImpl.java:310)
    	at net.fortuna.ical4j.data.CalendarParserImpl$PropertyParser.parse(CalendarParserImpl.java:247)
    	at net.fortuna.ical4j.data.CalendarParserImpl$PropertyParser.access$1100(CalendarParserImpl.java:229)
    	at net.fortuna.ical4j.data.CalendarParserImpl$PropertyListParser.parse(CalendarParserImpl.java:210)
    	at net.fortuna.ical4j.data.CalendarParserImpl$ComponentParser.parse(CalendarParserImpl.java:422)
    	at net.fortuna.ical4j.data.CalendarParserImpl$ComponentParser.access$900(CalendarParserImpl.java:406)
    	at net.fortuna.ical4j.data.CalendarParserImpl$PropertyListParser.parse(CalendarParserImpl.java:208)
    	at net.fortuna.ical4j.data.CalendarParserImpl.parseCalendar(CalendarParserImpl.java:115)
    	at net.fortuna.ical4j.data.CalendarParserImpl.parseCalendarList(CalendarParserImpl.java:180)
    	at net.fortuna.ical4j.data.CalendarParserImpl.parse(CalendarParserImpl.java:149)
    	at net.fortuna.ical4j.data.CalendarBuilder.build(CalendarBuilder.java:198)
    	at net.fortuna.ical4j.data.CalendarBuilder.build(CalendarBuilder.java:178)
    	at at.bitfire.ical4android.Task$Companion.fromReader(Task.kt:66)
    	at at.bitfire.davdroid.syncadapter.TasksSyncManager.processVTodo(TasksSyncManager.kt:150)
    	at at.bitfire.davdroid.syncadapter.TasksSyncManager.access$processVTodo(TasksSyncManager.kt:41)
    	at at.bitfire.davdroid.syncadapter.TasksSyncManager$processRemoteChanges$3.invoke(TasksSyncManager.kt:139)
    	at at.bitfire.davdroid.syncadapter.TasksSyncManager$processRemoteChanges$3.invoke(TasksSyncManager.kt:41)
    	at at.bitfire.davdroid.syncadapter.BaseDavSyncManager.useRemote(BaseDavSyncManager.kt:276)
    	at at.bitfire.davdroid.syncadapter.TasksSyncManager.processRemoteChanges(TasksSyncManager.kt:131)
    	at at.bitfire.davdroid.syncadapter.SyncManager.performSync(SyncManager.kt:127)
    	at at.bitfire.davdroid.syncadapter.TasksSyncAdapterService$TasksSyncAdapter.sync(TasksSyncAdapterService.kt:63)
    	at at.bitfire.davdroid.syncadapter.SyncAdapterService$SyncAdapter.onPerformSync(SyncAdapterService.kt:90)
    	at android.content.AbstractThreadedSyncAdapter$SyncThread.run(AbstractThreadedSyncAdapter.java:272)
    
    SOFTWARE INFORMATION
    Package: at.bitfire.davdroid
    Version: 1.11.1-gplay (214) from 27 Apr 2018
    Installed from: com.android.vending
    JB Workaround installed: no
    
    CONNECTIVITY (at the moment)
    Active connection: WiFi, CONNECTED
    
    CONFIGURATION
    Power saving disabled: yes
    android.permission.READ_CONTACTS permission: granted
    android.permission.WRITE_CONTACTS permission: granted
    android.permission.READ_CALENDAR permission: granted
    android.permission.WRITE_CALENDAR permission: granted
    org.dmfs.permission.READ_TASKS permission: granted
    org.dmfs.permission.WRITE_TASKS permission: granted
    System-wide synchronization: automatically
    Account: EMAIL@EMAIL.COM
      Address book sync. interval: —
      Calendar     sync. interval: 60 min
      OpenTasks    sync. interval: 60 min
      WiFi only: false
      [CardDAV] Contact group method: GROUP_VCARDS
      [CalDAV] Time range (past days): 90
               Manage calendar colors: true
    
    SQLITE DUMP
    android_metadata
    	|  locale |
    	|  en_GB |
    ----------
    services
    	|  _id | accountName | service | principal |
    	|  3 | EMAIL@EMAIL.COM | caldav | <null> |
    ----------
    sqlite_sequence
    	|  name | seq |
    	|  services | 3 |
    	|  homesets | 14 |
    	|  collections | 8 |
    ----------
    homesets
    	|  _id | serviceID | url |
    	|  14 | 3 | https://DOMAIN.COM:5006/homes/mike/Calendar/Mike/ |
    ----------
    collections
    	|  _id | serviceID | url | readOnly | displayName | description | color | timezone | supportsVEVENT | supportsVTODO | sync | type | source | forceReadOnly |
    	|  8 | 3 | https://DOMAIN.COM:5006/homes/mike/Calendar/Mike/ | 0 | <null> | <null> | <null> | <null> | 1 | 1 | 1 | CALENDAR | <null> | 0 |
    ----------
    
    SYSTEM INFORMATION
    Android version: 7.0 (NRD90M.G930FXXS2DRC3)
    Device: samsung SM-G930F (herolte)
    
    --- END DEBUG INFO ---
    

  • developer

    Looks like there's an error in this resource:

    https://DOMAIN.COM:5006/homes/mike/Calendar/Mike/f4c45cc0-d90f-4197-b976-b0dd40d798fa.ics

    Can you please provide the (anonymized) content of this file here or send it to play@bitfire.at?



  • @rfc2822
    Thanks again - here it is:

    BEGIN:VCALENDAR
    PRODID:-//Mozilla.org/NONSGML Mozilla Calendar V1.1//EN
    VERSION:2.0
    BEGIN:VEVENT
    CREATED:20160925T172625Z
    LAST-MODIFIED:20161019T220416Z
    DTSTAMP:20170622T174944Z
    UID:f4c45cc0-d90f-4197-b976-b0dd40d798fa
    SUMMARY:[Subject removed]
    PRIORITY:5
    RRULE:FREQ=DAILY;COUNT=2
    DTSTART;TZID=:20161018T160000
    DTEND;TZID=:20161018T190000
    CLASS:PRIVATE
    SEQUENCE:0
    TRANSP:OPAQUE
    X-MICROSOFT-CDO-BUSYSTATUS:BUSY
    X-MICROSOFT-CDO-IMPORTANCE:1
    BEGIN:VALARM
    ACTION:DISPLAY
    TRIGGER;VALUE=DURATION:-PT15M
    DESCRIPTION:Reminder
    END:VALARM
    END:VEVENT
    END:VCALENDAR
    

  • developer

    @hopkins Thanks. These lines are invalid:

    DTSTART;TZID=:20161018T160000
    DTEND;TZID=:20161018T190000
    

    A parser cannot know which time zone the event is in. So this file must throw an error. Fixing the event should fix your problem. 🙂

    Does that help?



  • @rfc2822
    Thank you. By locating, opening and saving the calendar item in my calendar app, the invalid syntax was corrected. I will now be able to try to identify and fix any similar errors in the future. However, could your software could be enhanced to describe to the user which item is in error? Displaying SUMMARY, DTSTART and DTEND alongside the UID should be sufficient.

    Thanks again!