Invalid argument supplied for foreach CalDAV Nextcloud



  • Hi guys,

    i got a Nextcloud 17.01 server hosted on a Centos 7 system with PHP7.3 using php-fpm and want to sync my calendar, mail and contacts using latest Z-Push 2.5.1.

    CardDAV is working fine, IMAP (for testing purposes) with an outlook.com account also. I want to setup a dedicated mailserver with his own domain later.

    However the only problem is the CalDAV-backend. Login works fine, but it doesnt sync with the following warning message in log:

    21/01/2020 09:31:48 [ 1307] [WARN] [user@outlookdomain.com] /usr/share/z-push/include/z_caldav.php:459 Undefined index: DAV::current-user-principal (8)
    21/01/2020 09:31:48 [ 1307] [WARN] [user@outlookdomain.com] /usr/share/z-push/include/z_caldav.php:459 Invalid argument supplied for foreach() (2)
    21/01/2020 09:31:48 [ 1307] [WARN] [user@outlookdomain.com] /usr/share/z-push/include/z_caldav.php:459 Undefined index: DAV::principal-URL (8)
    21/01/2020 09:31:48 [ 1307] [WARN] [user@outlookdomain.com] /usr/share/z-push/include/z_caldav.php:459 Invalid argument supplied for foreach() (2)
    21/01/2020 09:31:48 [ 1307] [WARN] [user@outlookdomain.com] /usr/share/z-push/include/z_caldav.php:459 Undefined index: DAV::owner (8)
    21/01/2020 09:31:48 [ 1307] [WARN] [user@outlookdomain.com] /usr/share/z-push/include/z_caldav.php:459 Invalid argument supplied for foreach() (2)
    21/01/2020 09:31:53 [ 1309] [WARN] [user@outlookdomain.com] /usr/share/z-push/include/z_caldav.php:614 Undefined offset: 0 (8)
    
    

    So i sync with an app called “Nine” on android and when i try so set a meeting in calendar it says there are no calendar-accounts available and i cant see any calendar or meetings.

    These are my Caldavsettings:

    // ************************
    //  BackendCalDAV settings
    // ************************
    
    // Server protocol: http or https
    define('CALDAV_PROTOCOL', 'https');
    
    // Server name
    define('CALDAV_SERVER', 'cloud.domain.com');
    
    // Server port
    define('CALDAV_PORT', '443');
    
    // Path
    define('CALDAV_PATH', '/remote.php/dav/calendars/%u/');
    
    // Default CalDAV folder (calendar folder/principal). This will be marked as the default calendar in the mobile
    define('CALDAV_PERSONAL', 'personal');
    
    // If the CalDAV server supports the sync-collection operation
    // DAViCal, SOGo and SabreDav support it
    // SabreDav version must be at least 1.9.0, otherwise set this to false
    // Setting this to false will work with most servers, but it will be slower
    define('CALDAV_SUPPORTS_SYNC', false);
    
    
    // Maximum period to sync.
    // Some servers don't support more than 10 years so you will need to change this
    define('CALDAV_MAX_SYNC_PERIOD', 2147483647);
    
    

    I also tried to set CALDAV_SUPPORTS_SYNC to true but with no luck. Sync with DAVx app directly to the Nextcloudserver works without any problem using the same credentials.

    If anyone can help me about that issue, I will appreciate it. I can also send debug logs if neccessary.

    Thanks in advance


  • Kopano

    Hi @Schwaus

    caldav backend was mostly a community contribution and I’m not sure that currently there’s someone actively working on it or supporting it.

    I suggest you also open an issue at https://jira.z-hub.io/projects/ZP/issues/ as the community developers are more likely to check for issues there. I suppose they will also need WBXML log, so you can attach it to the issue as well.

    Manfred



  • have you solve your problem?


Log in to reply