6.0.0-alpha12
6/9/25

[#13380] SyncML: calendar does not syn'c anylonger; "{GUID} not found" error
Summary SyncML: calendar does not syn'c anylonger; "{GUID} not found" error
Queue Synchronization
Queue Version Git master
Type Bug
State Duplicate
Priority 1. Low
Owners
Requester cedric.dufour (at) ced-network (dot) net
Created 07/20/2014 (3977 days ago)
Due
Updated 07/24/2014 (3973 days ago)
Assigned
Resolved 07/24/2014 (3973 days ago)
Github Issue Link
Github Pull Request
Milestone
Patch Yes

History
07/24/2014 08:50:38 PM Michael Rubinsky Comment #2
State ⇒ Duplicate
Priority ⇒ 1. Low
Reply to this comment
07/20/2014 04:41:02 PM cedric (dot) dufour (at) ced-network (dot) net Comment #1
Priority ⇒ 3. High
New Attachment: horde.kronolith-syncml.patch Download
Patch ⇒ Yes
Milestone ⇒
Queue ⇒ Synchronization
Summary ⇒ SyncML: calendar does not syn'c anylonger; "{GUID} not found" error
Type ⇒ Bug
State ⇒ Unconfirmed
Reply to this comment
Hello,

Since a few daysm SyncML calendar fails entirely with following error message:
"ERR: HORDE API export call for {GUID} failed: {GUID} not found"

Tracking the code path from .../lib/Horde/SyncMl/Sync.php (line 484), 
I believe the culprit is commit 
1ce32155134bdcb36bc1f63f740b881aec2b6819 (Allow filtering by calendars 
in calendars/export; @since 4.2.0) and an inconsitency between 
kronolith code and SyncML code.

*IF* I understand Horde call path correctly and looking at the 
calendar export code in .../kronolith/Api.php (line 884):

     public function export($uid, $contentType, array $options = 
array(), array $calendars = null)

And the corresponding call in .../lib/Horde/SyncMl/Backend/Horde.php 
(line 329):

     return $GLOBALS['registry']->call(
          $this->normalize($databaseURI) . '/export',
          array('guid' => $suid, 'contentType' => $contentType, 
'dummy' => null, 'fields' => $fields));

One can see the 'export' function expects a 'calendars' array as 4th 
argument while the SyncML code sends a 'fields' array. (up until 
commit 1ce32155134bdcb36bc1f63f740b881aec2b6819, the 'fields' argument 
was ignored since the 'export' function took only 3 arguments).

Modifying the SyncML call to:

     return $GLOBALS['registry']->call(
          $this->normalize($databaseURI) . '/export',
          array('guid' => $suid, 'contentType' => $contentType));

Temporarily fixed the problem for me. But I don't trust my 
understanding of the entire kronolith code to be sure this is the 
definite/appropriate fix.

Hope I/you could/can help fix this issue.

Best,

Cédric

Saved Queries