Fehler beim Sync mit Outlook / Problem beim Export des Kalenders

Hi Leute,

ich habe einen lokalen, physichen openSUSE Server, auf dem eine NextCloud-Instanz läuft.
Dabei handelt es sich um Version 19.0.1 (unter apache 2.4.58 mit PHP 7.4.33)
Ich weiß, das das nicht aktuell ist :wink:
In bin aber noch nicht dazu gekommen, die Installation Schritt für Schritt auf die aktuelle Version zu heben…

Die Daten des Kalenders und der Kontakte synchronisiere ich per “Outlook CalDav Synchronizer” mit mehreren Outlook-Installationen (Outlook 2019 unter Win11).

Dabei kommt es zu folgender Fehlermeldung:

<?xml version="1.0" encoding="utf-16"?>
<SynchronizationReport xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <ProfileName>Kalender</ProfileName>
  <ProfileId>bc6b77f6-9531-49a9-8742-d1ec881e4b92</ProfileId>
  <StartTime>2025-03-26T06:01:58.9825975Z</StartTime>
  <ADelta>Unchanged: 13795 , Added: 0 , Deleted 0 ,  Changed 0</ADelta>
  <BDelta>Unchanged: 13793 , Added: 0 , Deleted 1 ,  Changed 1</BDelta>
  <AJobsInfo>Create 0 , Update 1 , Delete 1</AJobsInfo>
  <BJobsInfo>Create 0 , Update 0 , Delete 0</BJobsInfo>
  <LoadErrors>
    <LoadError>
      <EntityId>00000000115EDCC5F3BF2142A8CF4F39FE324CF0C42D2000</EntityId>
      <Error>Column 'StartColumnId' is NULL.</Error>
      <IsAEntity>true</IsAEntity>
      <IsWarning>true</IsWarning>
    </LoadError>
    <LoadError>
      <EntityId>00000000115EDCC5F3BF2142A8CF4F39FE324CF0C43D2000</EntityId>
      <Error>Column 'StartColumnId' is NULL.</Error>
      <IsAEntity>true</IsAEntity>
      <IsWarning>true</IsWarning>
    </LoadError>
  </LoadErrors>
  <EntitySynchronizationReports>
    <EntitySynchronizationReport>
      <MappingErrors />
      <MappingWarnings />
      <AId>00000000115EDCC5F3BF2142A8CF4F39FE324CF0C42D2000</AId>
      <BId>/nextcloud/remote.php/dav/calendars/user/calendarname/B6127594-03AB-42FE-8894-50886CBD7932.ics</BId>
      <ExceptionThatLeadToAbortion>System.Runtime.InteropServices.COMException (0xBFB04005): Sie müssen eine Zeit angeben.
   bei Microsoft.Office.Interop.Outlook._AppointmentItem.get_EntryID()
   bei CalDavSynchronizer.Implementation.Events.EventEntityMapper.Map2To1(IICalendar sourceCalendar, IAppointmentItemWrapper target, IEntitySynchronizationLogger logger, IEventSynchronizationContext context)
   bei GenSync.Synchronization.States.UpdateBToA`7.&lt;UpdateEntity&gt;d__6.MoveNext()
--- Ende der Stapelüberwachung vom vorhergehenden Ort, an dem die Ausnahme ausgelöst wurde ---
   bei System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   bei System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   bei GenSync.Synchronization.States.UpdateBToA`7.JobWrapper.&lt;UpdateEntity&gt;d__13.MoveNext()
--- Ende der Stapelüberwachung vom vorhergehenden Ort, an dem die Ausnahme ausgelöst wurde ---
   bei System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   bei System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   bei CalDavSynchronizer.Implementation.Events.OutlookEventRepository.&lt;TryUpdate&gt;d__23.MoveNext()
--- Ende der Stapelüberwachung vom vorhergehenden Ort, an dem die Ausnahme ausgelöst wurde ---
   bei System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   bei GenSync.EntityRepositories.BatchEntityRepositoryAdapter`4.&lt;PerformOperations&gt;d__3.MoveNext()</ExceptionThatLeadToAbortion>
      <Operation>UpdateInA</Operation>
    </EntitySynchronizationReport>
    <EntitySynchronizationReport>
      <MappingErrors />
      <MappingWarnings />
      <AId>00000000115EDCC5F3BF2142A8CF4F39FE324CF0C43D2000</AId>
      <ExceptionThatLeadToAbortion>System.Runtime.InteropServices.COMException (0xC5E04005): Sie müssen eine Zeit angeben.
   bei Microsoft.Office.Interop.Outlook._AppointmentItem.get_EntryID()
   bei CalDavSynchronizer.Implementation.Events.OutlookEventRepository.TryDelete(AppointmentId entityId, DateTime version, IEventSynchronizationContext context, IEntitySynchronizationLogger logger)
   bei GenSync.EntityRepositories.BatchEntityRepositoryAdapter`4.&lt;PerformOperations&gt;d__3.MoveNext()</ExceptionThatLeadToAbortion>
      <Operation>DeleteInA</Operation>
    </EntitySynchronizationReport>
  </EntitySynchronizationReports>
  <ConsiderExceptionThatLeadToAbortionAsWarning>false</ConsiderExceptionThatLeadToAbortionAsWarning>
  <Duration>00:00:09.3882145</Duration>
</SynchronizationReport>

Um nun zu schauen, welcher Termin hier die Ursache sein kann, wollte ich einen kompletten Export des Kalenders starten - aber

curl -u user:passwort http://127.0.0.1/nextcloud/remote.php/dav/calendars/user/kalender/?export -o calendar.ics

liefert nach 4 oder 5 Sekunden eine leere Datei…

Any ideas?

Danke

Dirk

Die Logs der Gegenseite wären interessant also apache oder nextcloud je nach dem welche aussagekräftiger ist, würde erst mal auf NC tippen, ggf. Loglevel anpassen.

1 Like

OK, die eine Hälfte das Problems ist durch die (apache2-)Logfiles geklärt:
NC fehlte einfach Speicher, um die Termine exportieren zu können.
Nachdem ich das Memorylimit für PHP auf 512MB erhöht habe, funktioniert der Export nun.

Leider nutzt mir die Export-Datei in Bezug auf den Fehler beim Import nichts.
Ich sehe keine übereinstimmenden IDs oder ähnliches.

Kommende Woche werden mir mal die NC-Logs vornehmen und schauen, was da passiert, wenn der Sync durchgeführt wird.

Das Server-Log von Nextcloud ist unaffällig.

Am caldav Client wird am Ende des Syncs der Fehler geworfen.

 DEBUG 2025-03-31 15:21:44,116 [ VSTA_Main] Synchronizer.DataAccess.CalDavDataAccess . ExtractVersions                - Got version '/nextcloud/remote.php/dav/calendars/username/kalender/fffac4d6-87d1-4d38-bab5-b876e46994f5.ics': '"17c4a1e4c2fb49347fec3ef6bf9304c6"'
 DEBUG 2025-03-31 15:21:44,116 [ VSTA_Main] Synchronizer.DataAccess.CalDavDataAccess . ExtractVersions                - Got version '/nextcloud/remote.php/dav/calendars/username/kalender/fffd5b29-6148-42e8-a119-ff8b58454481.ics': '"5524bc325062e126bd443e2926284009"'
 DEBUG 2025-03-31 15:21:44,117 [ VSTA_Main] Synchronizer.DataAccess.CalDavDataAccess . ExtractVersions                - Got version '/nextcloud/remote.php/dav/calendars/username/kalender/ffffca77-ae11-42bd-b47e-92edb4ad57dd.ics': '"c299ebbeae8cdffdbf0a00d5bf50db79"'
 INFO  2025-03-31 15:21:44,117 [ VSTA_Main] onizer.Implementation.CalDavRepository`1 . MoveNext                       - Duration of 'CalDavRepository.GetVersions': 00:00:11.0877849
 INFO  2025-03-31 15:21:44,121 [ VSTA_Main]  GenSync.Synchronization.Synchronizer`11 . MoveNext                       - Performing entity matching with 13795 Atype and 13800 Btype entities.
 ERROR 2025-03-31 15:21:44,135 [ VSTA_Main] .Scheduling.SynchronizationProfileRunner . HandleException                - 
System.Runtime.InteropServices.COMException (0xF3904005): Sie m ssen eine Zeit angeben.
   bei Microsoft.Office.Interop.Outlook._AppointmentItem.get_AllDayEvent()
   bei CalDavSynchronizer.Implementation.Events.EventEntityMatchData..ctor(AppointmentItem appointment)
   bei CalDavSynchronizer.Implementation.Events.EventEntityMatchDataFactory.CreateMatchData(IAppointmentItemWrapper entity)
   bei GenSync.Synchronization.EntityContainer`4.<>c__DisplayClass7_0`1.<<GetTransformedEntities>b__0>d.MoveNext()
--- Ende der Stapel berwachung vom vorhergehenden Ort, an dem die Ausnahme ausgel st wurde ---
   bei System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   bei GenSync.Utilities.ChunkedExecutor.<ExecuteAsync>d__2`2.MoveNext()
--- Ende der Stapel berwachung vom vorhergehenden Ort, an dem die Ausnahme ausgel st wurde ---
   bei System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   bei System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   bei GenSync.Synchronization.EntityContainer`4.<GetTransformedEntities>d__7`1.MoveNext()
--- Ende der Stapel berwachung vom vorhergehenden Ort, an dem die Ausnahme ausgel st wurde ---
   bei System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   bei System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   bei GenSync.Synchronization.Synchronizer`11.<CreateEntitySyncStateContexts>d__32.MoveNext()
--- Ende der Stapel berwachung vom vorhergehenden Ort, an dem die Ausnahme ausgel st wurde ---
   bei System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   bei System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   bei GenSync.Synchronization.Synchronizer`11.<Synchronize>d__31.MoveNext()
--- Ende der Stapel berwachung vom vorhergehenden Ort, an dem die Ausnahme ausgel st wurde ---
   bei System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   bei System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   bei GenSync.Synchronization.Synchronizer`11.<Synchronize>d__27.MoveNext()
--- Ende der Stapel berwachung vom vorhergehenden Ort, an dem die Ausnahme ausgel st wurde ---
   bei System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   bei System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   bei GenSync.Synchronization.ContextCreatingSynchronizerDecorator`7.<Synchronize>d__3.MoveNext()
--- Ende der Stapel berwachung vom vorhergehenden Ort, an dem die Ausnahme ausgel st wurde ---
   bei System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   bei System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   bei CalDavSynchronizer.Scheduling.SynchronizationProfileRunner.<RunAndRescheduleNoThrow>d__22.MoveNext()
 INFO  2025-03-31 15:21:44,136 [ VSTA_Main] .Scheduling.SynchronizationProfileRunner . MoveNext                       - Duration of 'Running synchronization profile 'Kalender'': 00:00:12.6477745

Eventuell durch den letzten Kalender-Eintrag, der dort gelistet ist?
Das wäre die

/nextcloud/remote.php/dav/calendars/username/kalender/ffffca77-ae11-42bd-b47e-92edb4ad57dd.ics

Lade ich den Termin herunter wird mir

Serie: Dieser Termin steht jede Woche am Sonntag an, im Zeitraum vom 02.11.2014 bis zum 16.04.2017 (GMT+01:00)(no TZ description)

angezeigt.

Diese Serie habe ich gelöscht - aber der Fehler tritt immer noch auf.
War also nicht die Ursache…

Liebe @diwa

ehrlich gesagt erinnere ich mich nicht mehr an Fehlermeldungen in Bezug auf NC19. Das ist ja Jahre her.

Ich würde dir ernsthaft raten, ZUERST auf eine aktuelle Version upzugraden und dann mal zu sehen, was von deinem Problem noch übrig ist.
Für aktuelle Versionen Unterstützung zu bekommen, ist auch einfacher.

Geht dieser Update inzwischen auf einen Schritt, oder muss ich das Version für Version machen?

Nein, das geht auf keinen Fall, da schon ab Nextcloud-Version 26 kein PHP 7.4 mehr unterstützt wird. Version für Version ist also zwingend nötig und dabei muss immer eine unterstütze PHP-Version verwendet werden.

1 Like

Hmm…

OK.
Das ist dann aber eine ziemlich langwierige Aufgabe
Insbesondere auf einem Server, den man nur per (s)ftp erreicht.
Für jede Version ca. 500MB hochladen…

Wenn dieses Hochladen (etwa 20-40 Sekunden) ein Problem für Dich ist, dann hoffe ich, dass Du es mit den notwendigen PHP-Versionen auf Deinem System einfacher hast.

Verwendest Du die Nextcloud auch für den Dateiaustausch oder nur für die Synchronisation der Kontakte und Kalender mit dem “Outlook CalDAV Synchronizer”?
Dafür wäre der Aufwand wahrscheinlich zu hoch und ein Baikal-Server würde mit einer einmaligen Installation bis an das Lebensende Deines openSUSE Servers laufen.

Ich lade gerade die 25.0.13 per ftp hoch.
Da werden mir noch 30h angezeigt - und der Upload läuft schon seit heute morgen.
Ich habe schon häufiger festgestellt, dass Uploads mit vielen kleinen Dateien extrem lange dauern…
Das ist aber ein anderer Server (der aber auch hinterherhinkt) und DORT wird auch mit Dateiaustausch gearbeitet.
PHP-Version kann dort per Server-Backend eingestellt werden…

Hier werden tatsächlich nur Kontakte und Kalender verwendet.
Baikal werde ich mir mal anschauen, danke.

Hast Du denn keinen SSH-Zugang zu dem Server?
Die Datei “nextcloud-25.0.13.zip” könntest Du doch als Ganzes hochladen und dann dort erst entpacken, das geht 100 x schneller.

Leider nein…

Du kannst also per SFTP auf Deinen Server zugreifen.
Dann verwende doch einfach das Programm WinSCP und damit kannst Du die Datei “nextcloud-25.0.13.zip” hochladen.
Im Anschluss gehst Du in das Verzeichnis, wo Deine Datei liegt, öffnest das Terminal mit Shift+Ctrl+T und gibst den folgenden Befehl ein.

unzip -o nextcloud-26.0.13.zip

Das Ganze dauert nicht mehr als drei Minuten.

Auf dem Server habe ich KEINEN Zugriff per Terminal.
Ist ein einfach Webspace…

Das hast Du in Deinem 1. Beitrag geschrieben und jetzt schreibst Du:

Da passt etwas nicht zusammen!

Ich schrieb doch

Ja, das hat mit dem Ursprünglichen Thema (dem Fehler beim Sync) nichts mehr zu tun.
Ist ein zweiter Server, der auch nicht aktuell ist - aber nicht ganz so hinterherhinkt. Dafür aber auf einem einfachen Webspace liegt.

Auf den Rechner mit der Version 19 habe ich direkten Zugriff.
Das wird zwar auch dauern, aber (hoffentlich) nicht so lang, wie bei dem anderen…

Falls das Verzeichnis über den Browser erreichbar ist, könntest Du darin eine unzip.php erstellen, um das Archiv zu entpacken:

<?php
  $filename = 'archiv.zip';
  $last_line = system('unzip '.$filename, $return_value);
?>

Vor dem Aufruf der unzip.php müsste das Archiv lediglich in archiv.zip umbenannt werden.