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
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.<UpdateEntity>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.<UpdateEntity>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.<TryUpdate>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.<PerformOperations>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.<PerformOperations>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
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.
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.
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
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.
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.
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.
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.
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…