Open funwhilelost opened 3 years ago
The ICS file is invalid, since ACTION
is missing in a VALARM
. What you're asking is to ignore only the invalid VALARM
block, and not failing to process the whole VCALENDAR
, correct?
@tcitworld - yeah that was my expectation as a user. It's a very esoteric thing to prevent an appointment from being imported and I'm not sure most people would know how to remedy it. I've escalated the issue with the service that sent the file, too.
Ah - my issue title wasn't updated after I discovered the underlying syntax issue. Thanks for clarifying. I've updated the title now. Totally understand if this is a "wontfix"
The issue is in a dependency handling CalDAV support, any issue in any component can trigger the exception and stopping the file from being validated, so it would have to be taken upstream (but SabreDAV development isn't active anymore). https://github.com/nextcloud/3rdparty/blob/4466d782fafe2b53f3839156d10be0d3eacb47d6/sabre/dav/lib/CalDAV/Plugin.php#L873
So should this be reported to sabra/dav instead?
Yeah, the issue should argue that this case should be a case 1 (repairable) or 2 error level, and not through an exception like this.
Now there's a bounty on it: https://www.bountysource.com/issues/96640198-don-t-exit-calendar-import-when-invalid-ics-valarm-block-appears @funwhilelost would you care sharing that with your friends on Clubhouse ? The more the merrier ;)
Steps to reproduce
or
Expected behaviour
The appointment is added to the calendar, gracefully ignoring the invalid VALARM block:
Actual behaviour
PUT /remote.php/dav/calendars/....
returns a 415 Error from the webservice and this body:ICS File Contents
Server configuration
Operating system: Ubuntu 18.04 Web server: Apache (from snap) Database: MySQL 5.7.33 (from snap) PHP version: 7.4.14 (from snap) Nextcloud version: 20.0.7.1
Updated from an older Nextcloud/ownCloud or fresh install: updated via snap from ~18
Where did you install Nextcloud from: snap
Signing status:
Signing status
``` No errors have been found. ```List of activated apps:
App list
``` Enabled: - accessibility: 1.6.0 - activity: 2.13.4 - bookmarks: 4.0.8 - calendar: 2.1.3 - camerarawpreviews: 0.7.10 - cloud_federation_api: 1.3.0 - comments: 1.10.0 - contacts: 3.4.3 - contactsinteraction: 1.1.0 - dashboard: 7.0.0 - dav: 1.16.2 - federatedfilesharing: 1.10.2 - federation: 1.10.1 - files: 1.15.0 - files_external: 1.11.1 - files_markdown: 2.3.1 - files_mindmap: 0.0.24 - files_pdfviewer: 2.0.1 - files_sharing: 1.12.2 - files_trashbin: 1.10.1 - files_versions: 1.13.0 - files_videoplayer: 1.9.0 - firstrunwizard: 2.9.0 - logreader: 2.5.0 - lookup_server_connector: 1.8.0 - metadata: 0.12.0 - music: 0.17.3 - news: 15.2.2 - nextcloud_announcements: 1.9.0 - notes: 4.0.2 - notifications: 2.8.0 - oauth2: 1.8.0 - password_policy: 1.10.1 - photos: 1.2.3 - polls: 1.7.5 - previewgenerator: 3.1.1 - privacy: 1.4.0 - provisioning_api: 1.10.0 - recommendations: 0.8.0 - serverinfo: 1.10.0 - settings: 1.2.0 - sharebymail: 1.10.0 - support: 1.3.0 - survey_client: 1.8.0 - systemtags: 1.10.0 - tasks: 0.13.6 - text: 3.1.0 - theming: 1.11.0 - twofactor_backupcodes: 1.9.0 - twofactor_totp: 5.0.0 - user_status: 1.0.1 - viewer: 1.4.0 - weather_status: 1.0.0 - workflowengine: 2.2.0 Disabled: - admin_audit - deck - drawio - encryption - end_to_end_encryption - event_update_notification - extract - files_readmemd - files_rightclick - gpxedit - keeweb - ownpad - spreed - user_ldap ```Nextcloud configuration:
Config report
``` { "system": { "apps_paths": [ { "path": "\/snap\/nextcloud\/current\/htdocs\/apps", "url": "\/apps", "writable": false }, { "path": "\/var\/snap\/nextcloud\/current\/nextcloud\/extra-apps", "url": "\/extra-apps", "writable": true } ], "supportedDatabases": [ "mysql" ], "memcache.locking": "\\OC\\Memcache\\Redis", "memcache.local": "\\OC\\Memcache\\Redis", "redis": { "host": "***REMOVED SENSITIVE VALUE***", "port": 0 }, "passwordsalt": "***REMOVED SENSITIVE VALUE***", "secret": "***REMOVED SENSITIVE VALUE***", "trusted_domains": [ "localhost", "redacted" ], "datadirectory": "***REMOVED SENSITIVE VALUE***", "dbtype": "mysql", "version": "20.0.7.1", "overwrite.cli.url": "http:\/\/localhost", "dbname": "***REMOVED SENSITIVE VALUE***", "dbhost": "***REMOVED SENSITIVE VALUE***", "dbport": "", "dbtableprefix": "oc_", "mysql.utf8mb4": true, "dbuser": "***REMOVED SENSITIVE VALUE***", "dbpassword": "***REMOVED SENSITIVE VALUE***", "installed": true, "instanceid": "***REMOVED SENSITIVE VALUE***", "mail_smtpmode": "smtp", "mail_smtpsecure": "tls", "mail_sendmailmode": "smtp", "mail_from_address": "***REMOVED SENSITIVE VALUE***", "mail_domain": "***REMOVED SENSITIVE VALUE***", "mail_smtpauth": 1, "mail_smtphost": "***REMOVED SENSITIVE VALUE***", "mail_smtpport": "587", "mail_smtpauthtype": "LOGIN", "mail_smtpname": "***REMOVED SENSITIVE VALUE***", "mail_smtppassword": "***REMOVED SENSITIVE VALUE***", "loglevel": 0, "maintenance": false, "preview_max_x": "2048", "preview_max_y": "2048", "jpeg_quality": "60" } }Are you using external storage, if yes which one: Yes, local and S3 app
Are you using encryption: yes
Are you using an external user-backend, if yes which one: No
Client configuration
Browser: Chrome 88 Operating system: Ubuntu 20.10
Logs
Web server error log
Web server error log
``` Unsure where to find in snap ```Nextcloud log (data/nextcloud.log)
Nextcloud log
``` Debug twofactor_totp /appinfo/app.php is deprecated, use \OCP\AppFramework\Bootstrap\IBootstrap on the application class instead. 2021-02-15T23:36:25+00:00 Debug music /appinfo/app.php is deprecated, use \OCP\AppFramework\Bootstrap\IBootstrap on the application class instead. 2021-02-15T23:36:25+00:00 Debug metadata /appinfo/app.php is deprecated, use \OCP\AppFramework\Bootstrap\IBootstrap on the application class instead. 2021-02-15T23:36:25+00:00 Debug files_sharing /appinfo/app.php is deprecated, use \OCP\AppFramework\Bootstrap\IBootstrap on the application class instead. 2021-02-15T23:36:25+00:00 Debug files_mindmap /appinfo/app.php is deprecated, use \OCP\AppFramework\Bootstrap\IBootstrap on the application class instead. 2021-02-15T23:36:25+00:00 Debug files_markdown /appinfo/app.php is deprecated, use \OCP\AppFramework\Bootstrap\IBootstrap on the application class instead. 2021-02-15T23:36:25+00:00 Debug files_external /appinfo/app.php is deprecated, use \OCP\AppFramework\Bootstrap\IBootstrap on the application class instead. 2021-02-15T23:36:25+00:00 Debug contacts /appinfo/app.php is deprecated, use \OCP\AppFramework\Bootstrap\IBootstrap on the application class instead. 2021-02-15T23:36:25+00:00 Debug serverDI The requested alias "PreviewManager" is depreacted. Please request "OCP\IPreview" directly. This alias will be removed in a future Nextcloud version. 2021-02-15T23:36:25+00:00 Debug camerarawpreviews /appinfo/app.php is deprecated, use \OCP\AppFramework\Bootstrap\IBootstrap on the application class instead. 2021-02-15T23:36:25+00:00 Debug music /appinfo/app.php is deprecated, use \OCP\AppFramework\Bootstrap\IBootstrap on the application class instead. 2021-02-15T23:36:29+00:00 Debug files_sharing /appinfo/app.php is deprecated, use \OCP\AppFramework\Bootstrap\IBootstrap on the application class instead. 2021-02-15T23:36:29+00:00 Debug files_external /appinfo/app.php is deprecated, use \OCP\AppFramework\Bootstrap\IBootstrap on the application class instead. 2021-02-15T23:36:29+00:00 Debug contacts /appinfo/app.php is deprecated, use \OCP\AppFramework\Bootstrap\IBootstrap on the application class instead. 2021-02-15T23:36:29+00:00 Debug serverDI The requested alias "PreviewManager" is depreacted. Please request "OCP\IPreview" directly. This alias will be removed in a future Nextcloud version. 2021-02-15T23:36:29+00:00 Debug camerarawpreviews /appinfo/app.php is deprecated, use \OCP\AppFramework\Bootstrap\IBootstrap on the application class instead. 2021-02-15T23:36:29+00:00 ```Browser log
Browser log
``` request.js:339 PUT https://redacted/remote.php/dav/calendars/redacted/personal/redacted.ics 415 (Unsupported Media Type) (anonymous) @ request.js:339 u @ runtime.js:63 (anonymous) @ runtime.js:293 (anonymous) @ runtime.js:118 de @ calendar.js?v=cbb3d741-0:2 i @ calendar.js?v=cbb3d741-0:2 (anonymous) @ calendar.js?v=cbb3d741-0:2 (anonymous) @ calendar.js?v=cbb3d741-0:2 (anonymous) @ calendar.js?v=cbb3d741-0:2 (anonymous) @ request.js:117 u @ runtime.js:63 (anonymous) @ runtime.js:293 (anonymous) @ runtime.js:118 de @ calendar.js?v=cbb3d741-0:2 i @ calendar.js?v=cbb3d741-0:2 (anonymous) @ calendar.js?v=cbb3d741-0:2 (anonymous) @ calendar.js?v=cbb3d741-0:2 (anonymous) @ calendar.js?v=cbb3d741-0:2 (anonymous) @ davCollection.js:173 u @ runtime.js:63 (anonymous) @ runtime.js:293 (anonymous) @ runtime.js:118 Le @ calendar.js?v=cbb3d741-0:2 i @ calendar.js?v=cbb3d741-0:2 (anonymous) @ calendar.js?v=cbb3d741-0:2 (anonymous) @ calendar.js?v=cbb3d741-0:2 (anonymous) @ davCollection.js:33 (anonymous) @ calendar.js:53 u @ runtime.js:63 (anonymous) @ runtime.js:293 (anonymous) @ runtime.js:118 Ft @ calendar.js?v=cbb3d741-0:2 i @ calendar.js?v=cbb3d741-0:2 (anonymous) @ calendar.js?v=cbb3d741-0:2 (anonymous) @ calendar.js?v=cbb3d741-0:2 (anonymous) @ calendar.js:53 (anonymous) @ calendars.js:809 u @ runtime.js:63 (anonymous) @ runtime.js:293 (anonymous) @ runtime.js:118 fe @ calendar.js?v=cbb3d741-0:2 i @ calendar.js?v=cbb3d741-0:2 (anonymous) @ calendar.js?v=cbb3d741-0:2 (anonymous) @ calendar.js?v=cbb3d741-0:2 (anonymous) @ index.js:4 r @ index.js:3 (anonymous) @ index.js:24 u @ runtime.js:63 (anonymous) @ runtime.js:293 (anonymous) @ runtime.js:118 r @ calendar.js?v=cbb3d741-0:2 a @ calendar.js?v=cbb3d741-0:2 (anonymous) @ calendar.js?v=cbb3d741-0:2 (anonymous) @ calendar.js?v=cbb3d741-0:2 (anonymous) @ index.js:20 (anonymous) @ index.js:46 u @ runtime.js:63 (anonymous) @ runtime.js:293 (anonymous) @ runtime.js:118 r @ calendar.js?v=cbb3d741-0:2 a @ calendar.js?v=cbb3d741-0:2 Promise.then (async) r @ calendar.js?v=cbb3d741-0:2 a @ calendar.js?v=cbb3d741-0:2 (anonymous) @ calendar.js?v=cbb3d741-0:2 (anonymous) @ calendar.js?v=cbb3d741-0:2 a @ index.js:38 (anonymous) @ index.js:51 c @ index.js:51 i @ calendars.js:804 h @ calendars.js:803 (anonymous) @ calendars.js:799 u @ runtime.js:63 (anonymous) @ runtime.js:293 (anonymous) @ runtime.js:118 fe @ calendar.js?v=cbb3d741-0:2 i @ calendar.js?v=cbb3d741-0:2 (anonymous) @ calendar.js?v=cbb3d741-0:2 (anonymous) @ calendar.js?v=cbb3d741-0:2 importEventsIntoCalendar @ calendars.js:753 (anonymous) @ vuex.esm.js:847 m.dispatch @ vuex.esm.js:512 dispatch @ vuex.esm.js:402 (anonymous) @ SettingsImportSection.vue:241 u @ runtime.js:63 (anonymous) @ runtime.js:293 (anonymous) @ runtime.js:118 Ao @ calendar.js?v=cbb3d741-0:2 i @ calendar.js?v=cbb3d741-0:2 (anonymous) @ calendar.js?v=cbb3d741-0:2 (anonymous) @ calendar.js?v=cbb3d741-0:2 importCalendar @ SettingsImportSection.vue:240 He @ vue.runtime.esm.js:1854 n @ vue.runtime.esm.js:2179 He @ vue.runtime.esm.js:1854 e.$emit @ vue.runtime.esm.js:3888 importCalendar @ ImportScreen.vue:79 He @ vue.runtime.esm.js:1854 n @ vue.runtime.esm.js:2179 s._wrapper @ vue.runtime.esm.js:6917 Show 69 more frames calendars.js:812 Error at XMLHttpRequest.n.value.regeneratorRuntime.mark.regeneratorRuntime.wrap.e.abrupt.a.onreadystatechange (request.js:353) ``` ``` curl 'https://redacted/remote.php/dav/calendars/redacted/personal/redacted.ics' \ -X 'PUT' \ -H 'Connection: keep-alive' \ -H 'Pragma: no-cache' \ -H 'Cache-Control: no-cache' \ -H 'X-NC-CalDAV-Webcal-Caching: On' \ -H 'requesttoken: J20FL0tyOXciR62kFzowJizoh9Ix9NpsYI4dYTiXo9U=:aDVXQh41YztODJ/TVQ5CanyO7Z9ghZtHDrolU1b99IE=' \ -H 'DNT: 1' \ -H 'X-Requested-With: XMLHttpRequest' \ -H 'Depth: 0' \ -H 'User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.150 Safari/537.36' \ -H 'Content-Type: text/calendar; charset=UTF-8' \ -H 'Accept: */*' \ -H 'Origin: redacted' \ -H 'Sec-Fetch-Site: same-origin' \ -H 'Sec-Fetch-Mode: cors' \ -H 'Sec-Fetch-Dest: empty' \ -H 'Accept-Language: en-US,en;q=0.9' \ -H 'Cookie: redacted;' \ --data-raw $'BEGIN:VCALENDAR\r\nCALSCALE:GREGORIAN\r\nVERSION:2.0\r\nPRODID:icalendar-ruby\r\nBEGIN:VTIMEZONE\r\nTZID:America/Los_Angeles\r\nBEGIN:DAYLIGHT\r\nTZOFFSETFROM:-0800\r\nTZOFFSETTO:-0700\r\nTZNAME:PDT\r\nDTSTART:19700308T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\r\nEND:DAYLIGHT\r\nBEGIN:STANDARD\r\nTZOFFSETFROM:-0700\r\nTZOFFSETTO:-0800\r\nTZNAME:PST\r\nDTSTART:19701101T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\r\nEND:STANDARD\r\nEND:VTIMEZONE\r\nBEGIN:VEVENT\r\nDTSTAMP:20210215T232037Z\r\nUID:11847057@mn.co\r\nDTSTART;TZID=America/Los_Angeles:20210225T170000\r\nDTEND;TZID=America/Los_Angeles:20210225T180000\r\nDESCRIPTION:Zebras Unite\\n\\nJenny\\, who runs a regular event series on Club\r\n house\\, will be chatting with Mara Zepeda and me about all things Zebras Un\r\n ite. This one may be recorded and available for later listening. The timing\r\n makes it less suitable for European time zones\\, but some of you in Asia /\r\n Oceania might be interested to drop in. As discussed previously\\, Clubhous\r\n e is an iOS only app at the moment that we are experimenting with.\\n\\nSee M\r\n ore: https://mightynetworks.com/app/8/spaces/485142/posts/11847057%3Futm_ca\r\n mpaign=calendar_sync&utm_medium=calendar&utm_source=calendar_link\r\nLAST-MODIFIED;TZID=America/Los_Angeles:20210213T081854\r\nLOCATION:https://mightynetworks.com/app/8/spaces/485142/posts/11847057%3Fut\r\n m_campaign=calendar_sync&utm_medium=calendar&utm_source=calendar_link\r\nSUMMARY:Zebras Unite Fireside Chat — on Clubhouse\r\nBEGIN:VALARM\r\nTRIGGER:-PT15M\r\nUID:11847057@mn.co\r\nEND:VALARM\r\nBEGIN:VALARM\r\nACTION:AUDIO\r\nTRIGGER:-PT15M\r\nUID:11847057@mn.co\r\nEND:VALARM\r\nBEGIN:VALARM\r\nACTION:DISPLAY\r\nTRIGGER:-PT15M\r\nDESCRIPTION:Zebras Unite Fireside Chat — on Clubhouse\r\nEND:VALARM\r\nBEGIN:VALARM\r\nACTION:AUDIO\r\nTRIGGER:-PT15M\r\nEND:VALARM\r\nEND:VEVENT\r\nEND:VCALENDAR' \ --compressed ``` ```