nextcloud / nextcloud/calendar
Log flooded by "This recurrence rule does not generate any valid instances"
Nobody has claimed this yet.
- Dominant language
- JavaScript
- Stars
- 1.2k
- Forks
- 332
- Avg merge
- 16h 13m
- Merged PRs (30d)
- 137
Description
Steps to reproduce
- Subscribe to this public calendar which exhibits the issue
- Wait for a bit and look at the log in the admin settings
- 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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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