Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unable to dismiss Birthday notifications in Thunderbird - Results in 404 #21830

Open
anders-larsson opened this issue Jul 2, 2020 · 33 comments
Labels
1. to develop Accepted and waiting to be taken care of 25-feedback bug feature: caldav Related to CalDAV internals

Comments

@anders-larsson
Copy link

Describe the bug

Since the update to NextCloud 19.0.0 (well hard to say since you're not getting notifications for birthdays that often) I've been unable to dismiss notifications for birthdays in Thunderbird. I can successfully dismiss notifications triggered by other calendars in Nextcloud and therefore it's created here and not in nextcloud/server.

To Reproduce
Steps to reproduce the behavior:

  1. Install Contacts app in NextCloud
  2. Add contact and a birthdate
  3. Add calendar to Thunderbird https://cloud.mydomain.tld/remote.php/dav/calendars/user/contact_birthdays/
  4. Wait until birthday notification occurs
  5. Be unable to dismiss notification

Expected behavior
Notifications should be dismissed and no further notifications should be received regarding said birthday.

Actual behavior
Unable to dismiss notification. If closed (closing window instead of dismissing) another notification will pop up again after a while.

Screenshots
If applicable, add screenshots to help explain your problem.

Server configuration

Operating system: Linux

Web server: Nginx

Database: MariaDB

PHP version: 7.3

Nextcloud version: 19.0.0

Contacts version: 3.3.0

Updated from an older Nextcloud or fresh install: 18.0.6

Signing status:

No errors have been found.

List of activated apps:

Enabled:
  - accessibility: 1.5.0
  - activity: 2.12.0
  - admin_audit: 1.9.0
  - bruteforcesettings: 1.6.0
  - calendar: 2.0.3
  - cloud_federation_api: 1.2.0
  - comments: 1.9.0
  - contacts: 3.3.0
  - contactsinteraction: 1.0.0
  - dav: 1.15.0
  - federatedfilesharing: 1.9.0
  - federation: 1.9.0
  - files: 1.14.0
  - files_pdfviewer: 1.8.0
  - files_rightclick: 0.16.0
  - files_sharing: 1.11.0
  - files_trashbin: 1.9.0
  - files_versions: 1.12.0
  - files_videoplayer: 1.8.0
  - firstrunwizard: 2.8.0
  - logreader: 2.4.0
  - lookup_server_connector: 1.7.0
  - nextcloud_announcements: 1.8.0
  - notes: 3.6.0
  - notifications: 2.7.0
  - oauth2: 1.7.0
  - password_policy: 1.9.1
  - phonetrack: 0.6.3
  - photos: 1.1.0
  - privacy: 1.3.0
  - provisioning_api: 1.9.0
  - recommendations: 0.7.0
  - serverinfo: 1.9.0
  - settings: 1.1.0
  - sharebymail: 1.9.0
  - support: 1.2.1
  - survey_client: 1.7.0
  - systemtags: 1.9.0
  - tasks: 0.13.1
  - text: 3.0.1
  - theming: 1.10.0
  - twofactor_backupcodes: 1.8.0
  - twofactor_totp: 4.1.3
  - updatenotification: 1.9.0
  - user_ldap: 1.9.0
  - viewer: 1.3.0
  - workflowengine: 2.1.0
Disabled:
  - encryption
  - files_external

Nextcloud configuration:

{
    "system": {
        "instanceid": "***REMOVED SENSITIVE VALUE***",
        "passwordsalt": "***REMOVED SENSITIVE VALUE***",
        "secret": "***REMOVED SENSITIVE VALUE***",
        "trusted_domains": [
            "cloud.mydomain.tld"
        ],
        "datadirectory": "***REMOVED SENSITIVE VALUE***",
        "overwrite.cli.url": "https:\/\/cloud.mydomain.tld",
        "dbtype": "mysql",
        "version": "19.0.0.12",
        "dbname": "***REMOVED SENSITIVE VALUE***",
        "dbhost": "***REMOVED SENSITIVE VALUE***",
        "dbtableprefix": "oc_",
        "dbuser": "***REMOVED SENSITIVE VALUE***",
        "dbpassword": "***REMOVED SENSITIVE VALUE***",
        "logtimezone": "UTC",
        "installed": true,
        "mail_from_address": "***REMOVED SENSITIVE VALUE***",
        "mail_smtpmode": "smtp",
        "mail_domain": "***REMOVED SENSITIVE VALUE***",
        "theme": "",
        "loglevel": 2,
        "maintenance": false,
        "memcache.local": "\\OC\\Memcache\\APCu",
        "memcache.locking": "\\OC\\Memcache\\Redis",
        "redis": {
            "host": "***REMOVED SENSITIVE VALUE***",
            "port": 6379,
            "password": "***REMOVED SENSITIVE VALUE***",
            "timeout": 1.5
        },
        "updater.release.channel": "stable",
        "mail_smtpauthtype": "LOGIN",
        "mail_smtpauth": 1,
        "mail_smtphost": "***REMOVED SENSITIVE VALUE***",
        "mail_smtpport": "587",
        "mail_smtpname": "***REMOVED SENSITIVE VALUE***",
        "mail_smtppassword": "***REMOVED SENSITIVE VALUE***",
        "mail_smtpsecure": "tls",
        "mysql.utf8mb4": true,
        "ldapIgnoreNamingRules": false,
        "ldapProviderFactory": "OCA\\User_LDAP\\LDAPProviderFactory"
    }
}

Client configuration

Browser: Thunderbird

Operating system: Linux

CardDAV-clients: Thunderbird

Logs

Web server error log

192.168.13.1 - user [01/Jul/2020:21:32:03 +0200] "PUT /remote.php/dav/calendars/user/contact_birthdays/Contacts-C732AB46-1370-0001-D333-13306C101B82.vcf.ics HTTP/2.0" 404 869 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.9.0 Lightning/68.9.0" "-"

Nextcloud log

data/nextcloud.log

Log is almost 100MB in size. Nothing is added to it when this happens though.

Browser log

How to access your browser console (Click to expand)

Chrome

  • Press either CTRL + SHIFT + J to open the “console” tab of the Developer Tools.
  • Alternative method:
    1. Press either CTRL + SHIFT + I or F12 to open the Developer Tools.
    2. Click the “console” tab.

Safari

  • Press CTRL + ALT + I to open the Web Inspector.
  • See Chrome’s step 2. (Chrome and Safari have pretty much identical dev tools.)

IE9

  1. Press F12 to open the developer tools.
  2. Click the “console” tab.

Firefox

  • Press CTRL + SHIFT + K to open the Web console (COMMAND + SHIFT + K on Macs).
  • or, if Firebug is installed (recommended):
    1. Press F12 to open Firebug.
    2. Click on the “console” tab.

Opera

  1. Press CTRL + SHIFT + I to open Dragonfly.
  2. Click on the “console” tab.

Logs from Thunderbird debug console:

Lightning: CalDAV: Unexpected status modifying item to Birthdays: 404
BEGIN:VCALENDAR
PRODID:-//Mozilla.org/NONSGML Mozilla Calendar V1.1//EN
VERSION:2.0
BEGIN:VEVENT
LAST-MODIFIED:20200701T193203Z
DTSTAMP:20200701T193203Z
UID:C732AB46-1390-0001-7845-1B301B901C56
SUMMARY: Firstname Lastname (*1990)
RRULE:FREQ=YEARLY
X-MOZ-LASTACK:20200701T193203Z
DTSTART;VALUE=DATE:19900622
DTEND;VALUE=DATE:19900623
TRANSP:TRANSPARENT
X-NEXTCLOUD-BC-FIELD-TYPE:BDAY
X-NEXTCLOUD-BC-UNKNOWN-YEAR:0
X-NEXTCLOUD-BC-YEAR:1990
X-MOZ-GENERATION:1
BEGIN:VALARM
ACTION:DISPLAY
TRIGGER;VALUE=DURATION:PT0S
DESCRIPTION: Firstname Lastname (*1990)
X-LIC-ERROR;X-LIC-ERRORTYPE=PARAMETER-VALUE-PARSE-ERROR:Got a VALUE parameter with an illegal type for property: VALUE=DURATION
END:VALARM
END:VEVENT
END:VCALENDAR
@skjnldsv
Copy link
Member

cc @georgehrke

@georgehrke
Copy link
Member

Moving to the server

@georgehrke georgehrke pinned this issue Jul 14, 2020
@georgehrke georgehrke unpinned this issue Jul 14, 2020
@georgehrke georgehrke transferred this issue from nextcloud/contacts Jul 14, 2020
@georgehrke
Copy link
Member

@anders-larsson Any chance you could provide us with the exact request thunderbird tries to send to the server? (With wireshark or similar?)

@anders-larsson
Copy link
Author

Using the Developer tools in Thunderbird I can see the complete request sent.

Thanks for your help.

{
  "log": {
    "version": "1.2",
    "creator": {
      "name": "Thunderbird",
      "version": "68.10.0"
    },
    "browser": {
      "name": "Thunderbird",
      "version": "68.10.0"
    },
    "pages": [
      {
        "startedDateTime": "2020-07-14T14:08:02.178+02:00",
        "id": "page_2",
        "pageTimings": {
          "onContentLoad": -1,
          "onLoad": -1
        }
      }
    ],
    "entries": [
      {
        "pageref": "page_2",
        "startedDateTime": "2020-07-14T14:08:02.178+02:00",
        "request": {
          "bodySize": 747,
          "method": "PUT",
          "url": "https://cloud.domain.tld/remote.php/dav/calendars/user/contact_birthdays/Contacts-BDB2E634-0770-479B-9074-F2DC82D146B8.vcf.ics",
          "httpVersion": "HTTP/2.0",
          "headers": [
            {
              "name": "Host",
              "value": "cloud.domain.tld"
            },
            {
              "name": "User-Agent",
              "value": "Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 Lightning/68.10.0"
            },
            {
              "name": "Accept",
              "value": "text/xml"
            },
            {
              "name": "Accept-Language",
              "value": "en-GB,en;q=0.5"
            },
            {
              "name": "Accept-Encoding",
              "value": "gzip, deflate, br"
            },
            {
              "name": "Accept-Charset",
              "value": "utf-8,*;q=0.1"
            },
            {
              "name": "Content-Type",
              "value": "text/calendar; charset=utf-8"
            },
            {
              "name": "Content-Length",
              "value": "751"
            },
            {
              "name": "If-Match",
              "value": "\"<hidden>\""
            },
            {
              "name": "Authorization",
              "value": "Basic <hidden>"
            },
            {
              "name": "Connection",
              "value": "keep-alive"
            },
            {
              "name": "Pragma",
              "value": "no-cache"
            },
            {
              "name": "Cache-Control",
              "value": "no-cache"
            },
            {
              "name": "TE",
              "value": "Trailers"
            }
          ],
          "cookies": [],
          "queryString": [],
          "headersSize": 620,
          "postData": {
            "mimeType": "text/calendar; charset=utf-8",
            "params": [],
            "text": "BEGIN:VCALENDAR\r\nPRODID:-//Mozilla.org/NONSGML Mozilla Calendar V1.1//EN\r\nVERSION:2.0\r\nBEGIN:VEVENT\r\nLAST-MODIFIED:20200714T120802Z\r\nDTSTAMP:20200714T120802Z\r\nUID:29b41597-0e5a-4f9e-9c75-e855e516f24d\r\nSUMMARY:🎂 Firstname Lastname (2020)\r\nRRULE:FREQ=YEARLY\r\nX-MOZ-LASTACK:20200714T120802Z\r\nDTSTART;VALUE=DATE:20200714\r\nDTEND;VALUE=DATE:20200715\r\nTRANSP:TRANSPARENT\r\nX-NEXTCLOUD-BC-FIELD-TYPE:BDAY\r\nX-NEXTCLOUD-BC-UNKNOWN-YEAR:0\r\nX-NEXTCLOUD-BC-YEAR:2020\r\nX-MOZ-GENERATION:1\r\nBEGIN:VALARM\r\nACTION:DISPLAY\r\nTRIGGER;VALUE=DURATION:PT0S\r\nDESCRIPTION:🎂 Firstname Lastname (2020)\r\nX-LIC-ERROR;X-LIC-ERRORTYPE=PARAMETER-VALUE-PARSE-ERROR:Got a VALUE parame\r\n ter with an illegal type for property: VALUE=DURATION\r\nEND:VALARM\r\nEND:VEVENT\r\nEND:VCALENDAR\r\n"
          }
        },
        "response": {
          "status": 404,
          "statusText": "Not Found",
          "httpVersion": "HTTP/2.0",
          "headers": [
            {
              "name": "server",
              "value": "nginx"
            },
            {
              "name": "date",
              "value": "Tue, 14 Jul 2020 12:08:02 GMT"
            },
            {
              "name": "content-type",
              "value": "text/html; charset=UTF-8"
            },
            {
              "name": "location",
              "value": "https://cloud.domain.tld/apps/files/"
            },
            {
              "name": "expires",
              "value": "Thu, 19 Nov 1981 08:52:00 GMT"
            },
            {
              "name": "cache-control",
              "value": "no-store, no-cache, must-revalidate"
            },
            {
              "name": "pragma",
              "value": "no-cache"
            },
            {
              "name": "set-cookie",
              "value": "oc_sessionPassphrase=<hidden>; path=/; secure; HttpOnly; SameSite=Lax"
            },
            {
              "name": "content-security-policy",
              "value": "default-src 'self'; script-src 'self' 'nonce-<hidden>='; style-src 'self' 'unsafe-inline'; frame-src *; img-src * data: blob:; font-src 'self' data:; media-src *; connect-src *; object-src 'none'; base-uri 'self';"
            },
            {
              "name": "set-cookie",
              "value": "__Host-nc_sameSiteCookielax=true; path=/; httponly;secure; expires=Fri, 31-Dec-2100 23:59:59 GMT; SameSite=lax"
            },
            {
              "name": "set-cookie",
              "value": "__Host-nc_sameSiteCookiestrict=true; path=/; httponly;secure; expires=Fri, 31-Dec-2100 23:59:59 GMT; SameSite=strict"
            },
            {
              "name": "set-cookie",
              "value": "<hidden>; path=/; secure; HttpOnly; SameSite=Lax"
            },
            {
              "name": "X-Firefox-Spdy",
              "value": "h2"
            }
          ],
          "cookies": [
            {
              "name": "oc_sessionPassphrase",
              "value": "<hidden>"
            },
            {
              "name": "__Host-nc_sameSiteCookielax",
              "value": "true"
            },
            {
              "name": "__Host-nc_sameSiteCookiestrict",
              "value": "true"
            },
            {
              "name": "<hidden>",
              "value": "<hidden>"
            }
          ],
          "content": {
            "mimeType": "text/html; charset=UTF-8",
            "size": 0,
            "text": ""
          },
          "redirectURL": "https://cloud.domain.tld/apps/files/",
          "headersSize": 1165,
          "bodySize": 2536
        },
        "cache": {},
        "timings": {
          "blocked": 0,
          "dns": 0,
          "connect": 0,
          "ssl": 0,
          "send": 0,
          "wait": 117,
          "receive": 0
        },
        "time": 117,
        "_securityState": "secure",
        "serverIPAddress": "<hidden>",
        "connection": "443"
      }
    ]
  }
}

@skjnldsv skjnldsv added the 0. Needs triage Pending check for reproducibility or if it fits our roadmap label Aug 20, 2020
@JPustkuchen
Copy link

Exactly the same problem here with the birthday reminder and

X-LIC-ERROR;X-LIC-ERRORTYPE=PARAMETER-VALUE-PARSE-ERROR:Got a VALUE parameter with an illegal type for property: VALUE=DURATION

Can't close the reminders in TB 68.12.0 with NC 19.0.2

Also see https://bugs.launchpad.net/ubuntu/+source/thunderbird/+bug/1846423

@LukeLR
Copy link

LukeLR commented Nov 3, 2020

I'm affected by this bug as well. Nextcloud is v20.0, Thunderbird is 68.12.0. My first guess was this is caused because the birthday calendar is read-only (only contains birthdays of contacts) but Thunderbird tries to write to it in order to mark the reminders as "dismissed"? Because dismissing other reminders seems to work. Thanks for reading!

@Hoeze
Copy link

Hoeze commented Nov 4, 2020

Just hit the same bug. TB 68.12.0 and nextcloud 18.0.1

@skjnldsv
Copy link
Member

skjnldsv commented Nov 7, 2020

duplicate of #17915

@skjnldsv skjnldsv closed this as completed Nov 7, 2020
@clonejo
Copy link

clonejo commented Dec 16, 2021

A workaround for some people may be to disable reminders on that birthday calendar within Thunderbird.

@GeGeFe
Copy link

GeGeFe commented Mar 2, 2022

Me too affected for this bug in Thunderbird 91.6.1 (64-bits) and Ubuntu 20.04.

@aslmx
Copy link

aslmx commented Jun 8, 2022

This also affects Thunderbird 102.0b3 (64-bit) (Linux).
Had to disable reminders and hope not to forget a birthday now ;)

@gaetleba
Copy link

gaetleba commented Jul 7, 2022

I encountered this bug yesterday with NC 24.0.1 and thunderbird 103.0b2. I just found out that setting the birthday calendar as read-only in thunderbird seems to be a workaround in my case.

@cieska
Copy link

cieska commented Jan 4, 2023

I do have the same problem for ages. And still persists in the current newest version of thunderbird and NC25. Luckily I do not have too many birthdays listed.

@wunschadresse
Copy link

duplicate of #17915

is it really? I cannot argue from a technical point of view, but from user-experience this feels different.

this thread is also hoping for answers: https://help.nextcloud.com/t/thunderbird-notifications-cannot-be-closed/138034

@LukeLR
Copy link

LukeLR commented Feb 1, 2023 via email

@jamespoore
Copy link

This should be re-opened, it is a valid issue.

Had to set the calendar to read only as suggested above.

@Folaht
Copy link

Folaht commented Mar 21, 2023

I second this.

@anders-larsson
Copy link
Author

Wish I would be able to re-open it but I'm unable to do so.

Maybe @skjnldsv can help?

@skjnldsv skjnldsv reopened this Mar 21, 2023
@skjnldsv skjnldsv added 1. to develop Accepted and waiting to be taken care of bug and removed 0. Needs triage Pending check for reproducibility or if it fits our roadmap labels Mar 21, 2023
@dnno
Copy link

dnno commented Jul 20, 2023

I have the same problem, though not only with the birthday calendar, but also with a regular calender hosted in nextcloud. Notifications just won't go away. Thunderbird 115 and Nextcloud 25.0.8

@cieska
Copy link

cieska commented Jul 20, 2023

I have sorted this out somehow. But I can't remember how. hmmmm... Maybe, I removed the sync, and then, re-added it? Can someone confirm?

@markc
Copy link

markc commented Aug 20, 2023

Same problem for contact_birthdays. I cannot dismiss notifications with Nextcloud 27.0.2 and Thunderbird 115.1.1 and in fact they are still popping up the next day.

@joshtrichards joshtrichards added the feature: caldav Related to CalDAV internals label Aug 25, 2023
@hbarthel
Copy link

Same problem here with contact birthdays. I cannot dismiss notifications with Nextcloud 26.0.6. and Thunderbird 115.2.0.

@rollyfx
Copy link

rollyfx commented Sep 28, 2023

Same here, with contacts birthdays (Nextcloud 27.0.1 & Thunderbird 102.15.1)

@kassi
Copy link

kassi commented Oct 24, 2023

Same here, Nextcloud 27.1.1, Thunderbird 115.3.3 (Win).
I see a request being made to the server as
PUT /remote.php/dav/calendars/<name>/contact_birthdays/contacts-XXXXXXX-XXXX-XXXX-XXXXXXXXXXX.vcf.ics which results in a 404.
XXX looks like a UUID.

@spalinger
Copy link

Same here,
Nextcloud 27.1.3, Thunderbird 115.4.2.

@AnneWielis
Copy link

Same here. Thunderbird 115.7.0 (Windows), Nextcloud 24.0.8

@Routhinator
Copy link

Still affecting Thunderbird 115.6.0 (64-bit Linux) and Nextcloud 28.0.3 😞

@cieska
Copy link

cieska commented Mar 10, 2024

If I remember it right... Need to remove it from sync with the client, and re-ad it again? maybe...?

@resoli
Copy link

resoli commented Apr 3, 2024

Same here: TB 115.9.0 (64-bit Linux) and Nextcloud 28.0.4

@simonmicro
Copy link

simonmicro commented Apr 3, 2024

Hey. I don't know if this can be fixed, or if this is really more something for the Thunderbird team.

Workaround

Set your calendar in Thunderbird to "Read Only". This resolves the problem locally.

image

...why?

...Thunderbird modifies the event information to store the "dismissed" state (useful if you have multiple Thunderbird instances looking at the same calendar, as this dismisses them all). As this obviously does not work with read-only implementations, the GUI of Thunderbird gets stuck. I do not think the Nextcloud extension can really fix this, as - by design - the birthday reminders are meant to be read-only, hence cannot be modified in any way. Lifting this restriction would cause a lot of additional work: Especially if people start deleting them (and they subsequently reappear).

I think this is more a Thunderbird issue, where they should handle the "cannot update remote" errors also for dismissal-problems: They already implemented this handling for desynchronization problems (modified local state, but remote changed since last pull), but this was seemingly not added to the dismissal button of the reminder dialog.

(I assume the 404 is caused by no route being installed for the "PUT"-method of HTTP, maybe Thunderbird behaves better if an 403/401 response is being sent)

@resoli
Copy link

resoli commented Apr 4, 2024

@simonmicro Many thanks. I can confirm that setting the calendar read only in TB solves the issue of reiterated requests to dismiss. The alert notifications is thrown a single time.

@IreNox
Copy link

IreNox commented Oct 21, 2024

I have the same problem but with eM Client on Windows. Unfortunately it has no option to set it read only nor can I disable reminders. I would really appreciate if you could fix this on server side.

@Routhinator
Copy link

Yeah the workaround is clear, but Nextcloud should fix the metadata on this calendar so Thunderbird does that automatically as it does for other readonly calendars, removing this UX problem entirely.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
1. to develop Accepted and waiting to be taken care of 25-feedback bug feature: caldav Related to CalDAV internals
Projects
None yet
Development

No branches or pull requests