nextcloud / nextcloud/calendar

Log flooded by "This recurrence rule does not generate any valid instances"

Open
#6,723 3 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

1. to develop bug hotspot: recurring events
Dominant language
JavaScript
Stars
1.2k
Forks
332
Avg merge
16h 13m
Merged PRs (30d)
137

Description

Steps to reproduce
  1. Subscribe to this public calendar which exhibits the issue
  2. Wait for a bit and look at the log in the admin settings
  3. I see several instances of this every 10 minutes or so, from different subscriptions (seems I have multiple users subscribing to this calendar or some other calendar with the same issue)
Expected behavior

Log is not flodded with messages about this, the calendar seems good to me when I read it e.g. with my mail client.

Actual behavior

Several dozen lines every attempted calendar sync land in the log with "Forbidden" in front

Calendar app version

5.0.10

CalDAV-clients used

DAVx5, Evolution

Browser

Firefox 135.0

Client operating system

Debian 12

Server operating system

Debian 12

Web server

Nginx

Database engine version

PostgreSQL

PHP engine version

PHP 8.0

Nextcloud version

30.0.6

Updated from an older installed version or fresh install

Updated from an older version

List of activated apps

Nextcloud configuration

Web server error log

Log file

Browser log

Additional info

Raw details of one entry:

{
    "reqId": "1oAqWLIzknF2uRJPIU6y",
    "level": 2,
    "time": "2025-02-15T16:41:31+00:00",
    "remoteAddr": "",
    "user": "--",
    "app": "dav",
    "method": "",
    "url": "--",
    "message": "Unable to denormalize calendar object from subscription 28",
    "userAgent": "--",
    "version": "30.0.6.2",
    "exception": {
        "Exception": "Sabre\\DAV\\Exception\\Forbidden",
        "Message": "This recurrence rule does not generate any valid instances",
        "Code": 0,
        "Trace": [
            {
                "file": "/var/www/montecristosoftware/nextcloud/apps/dav/lib/CalDAV/WebcalCaching/RefreshWebcalService.php",
                "line": 104,
                "function": "getDenormalizedData",
                "class": "OCA\\DAV\\CalDAV\\CalDavBackend",
                "type": "->"
            },
            {
                "file": "/var/www/montecristosoftware/nextcloud/apps/dav/lib/BackgroundJob/RefreshWebcalJob.php",
                "line": 73,
                "function": "refreshSubscription",
                "class": "OCA\\DAV\\CalDAV\\WebcalCaching\\RefreshWebcalService",
                "type": "->"
            },
            {
                "file": "/var/www/montecristosoftware/nextcloud/lib/public/BackgroundJob/Job.php",
                "line": 61,
                "function": "run",
                "class": "OCA\\DAV\\BackgroundJob\\RefreshWebcalJob",
                "type": "->"
            },
            {
                "file": "/var/www/montecristosoftware/nextcloud/apps/dav/lib/BackgroundJob/RefreshWebcalJob.php",
                "line": 66,
                "function": "start",
                "class": "OCP\\BackgroundJob\\Job",
                "type": "->"
            },
            {
                "file": "/var/www/montecristosoftware/nextcloud/lib/public/BackgroundJob/Job.php",
                "line": 46,
                "function": "start",
                "class": "OCA\\DAV\\BackgroundJob\\RefreshWebcalJob",
                "type": "->"
            },
            {
                "file": "/var/www/montecristosoftware/nextcloud/cron.php",
                "line": 162,
                "function": "execute",
                "class": "OCP\\BackgroundJob\\Job",
                "type": "->"
            }
        ],
        "File": "/var/www/montecristosoftware/nextcloud/apps/dav/lib/CalDAV/CalDavBackend.php",
        "Line": 3044,
        "message": "Unable to denormalize calendar object from subscription {subscriptionId}",
        "exception": [],
        "source": "https://calendar.google.com/calendar/ical/volteuropa.org_3qtptk1l0mfg76gq9nfqq1h4mg%40group.calendar.google.com/public/basic.ics",
        "CustomMessage": "Unable to denormalize calendar object from subscription 28"
    },
    "id": "67b0c49348908"
}

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with apps/dav/lib/CalDAV/WebcalCaching/RefreshWebcalService.php at line 104 and apps/dav/lib/BackgroundJob/RefreshWebcalJob.php at line 73, following the refresh path to CalDavBackend.php line 3044. Reproduce the supplied subscription and inspect how the invalid recurrence exception is handled. Done means repeated syncs no longer flood the log while valid calendar data remains usable.

Written by the indexing model from the issue text.

Assessment

Tech stack
php
Domain
backend
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.