mirror of
https://github.com/aluxnimm/outlookcaldavsynchronizer.git
synced 2026-04-26 03:25:48 +03:00
[GH-ISSUE #286] Status code 412 ('Precondition Failed') not handled properly, disappearing events after sync #278
Labels
No labels
1.0
1.0
1.0
2.0
Feature
Feature request
Google
Google Calendar
async
attachement
auto-migrated
auto-migrated
auto-migrated
bug
critical
enhancement
help wanted
implemented
pull-request
solved
solved
sourceforge
sourceforge
sourceforge
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/outlookcaldavsynchronizer#278
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @heinrich-ulbricht on GitHub (Oct 5, 2020).
Original GitHub issue: https://github.com/aluxnimm/outlookcaldavsynchronizer/issues/286
I synchronize Outlook with a Synology NAS. Generally speaking this works fine, appointments get created. I'm replicating from Outlook to the server.
Observed behavior
My synchronization reports show errors on a regular basis:
This sometimes seems to break synchronization of appointments with the Synology NAS. Events are missing or disappearing from my Synology NAS calendar.
Full raw error message for a recently created test appointment:
Looking at the log it seems that CalDav Synchronizer creates the appointment. Then tries to create it again. So this error might be the correct response by the server!
Expected behavior
I expect those errors to not be present or to not interrupt synchronization.
How to reproduce
For me it's enough to just keep CalDav Synchronizer running and doing its thing. The errors will show up regularly. But also creating a test appointment and triggering a manual sync triggered the error.
I searched the web for similar reports in combination with a Synology NAS but found nothing useful. Not sure if this is a general error about handling 412s or something specific to my setup.
Possible solution?
Maybe CalDav Synchronizer could handle the 412 as "already exists" and count it as success? Or add a debug configuration to handle 412 like 304 or to ignore it.
Looking at the documentation of if-none-match:
(The real error might be that CalDav Synchronizer wrongly tries to create an already existing appointment. Because according to the debug log it does exactly that.)
Versions
CalDav Synchronizer Version is 3.8.2.0
Windows 10 Pro
Outlook for Microsoft 365 MSO (16.0.13127.20402) 64-bit
@heinrich-ulbricht commented on GitHub (Oct 5, 2020):
I can trigger the error by:
This will get me a 412 response code for the appointment.
@heinrich-ulbricht commented on GitHub (Oct 6, 2020):
Additional thoughts: the configured repository URL is
<server>/caldav/<etc>. This is handled well by the Synology NAS, internally it rewrites this to<server>/caldav.php/<etc>. While debugging I saw that this URL (or parts of it) is used as ID in some places and I'm wondering if this might cause problems. I saw both versions being handled by the code and maybe this breaks some change/duplicate detections?After writing this I saw that the log even contains a message regarding this:
Is this handled well?
@heinrich-ulbricht commented on GitHub (Oct 6, 2020):
It seems the problems are gone after changing the repository URL from https:///caldav/user/home/ to https:///caldav.php/user/home/ (note the added .php).
While surfing the web I noticed 412 HTTP response codes in combination with other systems. Maybe such URL rewriting is the cause there as well.
I'll monitor this for a while. So far the current situation looks promising.
@heinrich-ulbricht commented on GitHub (Oct 6, 2020):
No errors anymore. Problem solved.