-
-
Notifications
You must be signed in to change notification settings - Fork 4.1k
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
ICS import fails - OPTION_FORGIVING should handle underscores #16679
Comments
@mainmachine Please make sure to report this to the software which generated the faulty ICS. |
Moving to the server repo since it's related to server-side parsing. |
I would, but I have no idea if the source of the problem is in Outlook for MacOS, the MacOS calendar system, nor do I know how to even begin debugging that as I don't have direct access to a Mac myself. :/ If you're suggesting the root of this problem is invalid iCalendar syntax from Outlook on MacOS, then yes I agree. That said, I think we have to adapt to their bug as I don't expect either MS or Apple care enough to fix it. |
The icalendar data that you posted contains the following line:
Seems to be generated by https://metacpan.org/pod/Data::ICal. |
The only common factors I have is that I get this problem with invites from only 2 associates out of all of those who send me ics invites. These 2 folks are both using Outlook on Mac, so I believe that Outlook is sending those invites (they are attachments to an email, so this is logical). Interesting, it appears that library was just bumped to 0.23 only two days ago... Maybe they saw your comment? 😉 |
Ah wait - that file was a mock file, in other words not generated purely by that library. I used it in place of actual ics files I have recieved as those contain sensitive data. The ics files that cause me trouble have this line:
Sorry for the confusion! |
I've sanitized an actual problem ics file: bad-from-outlook-for-mac_meeting.ics.txt Simply changing the underscore for a dash fixes the problem: - X-ENTOURAGE_UUID:XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
+ X-ENTOURAGE-UUID:XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX |
If a file isn't correct, I guess we cannot do much about that. So I would recommend to edit the file in this case with your favorite text editor to become valid -> closing. |
@szaimen, I think it is actually possible to add For example change from: $vobj = VObject\Reader::readJson($data); To this: $vobj = VObject\Reader::readJson($data, VObject\Reader::OPTION_FORGIVING); I tried patching my own NextCloud instance manually like this, and the This might also solve a subset of causes for #17915. |
@kvikshaug do you mind opening a PR with your patch for discussion? Thank you! |
Same here with files exported by E-Groupware that contains |
Hi, please update to 24.0.8 or better 25.0.2 and report back if it fixes the issue. Thank you! |
Hi guys! This still happens in version 27.1.x, importing an ics with a underscores in property. thanks. |
Steps to reproduce
Expected behaviour
sabredav OPTION_FORGIVING should handle this, converting underscores into hyphens, etc.
Actual behaviour
Import fails, error message received
Server configuration detail
Operating system: Linux 4.15.0-52-generic nextcloud/calendar#56-Ubuntu SMP Tue Jun 4 22:49:08 UTC 2019 x86_64
Webserver: Apache/2.4.38 (Debian) (apache2handler)
Database: mysql 5.7.25
PHP version:
7.3.7
Modules loaded: Core, date, libxml, openssl, pcre, sqlite3, zlib, ctype, curl, dom, fileinfo, filter, ftp, hash, iconv, json, mbstring, SPL, PDO, session, posix, Reflection, standard, SimpleXML, pdo_sqlite, Phar, tokenizer, xml, xmlreader, xmlwriter, mysqlnd, apache2handler, apcu, exif, gd, imagick, intl, ldap, memcached, pcntl, pdo_mysql, pdo_pgsql, redis, sodium, zip, Zend OPcache
Nextcloud version: 16.0.3 - 16.0.3.0
Updated from an older Nextcloud/ownCloud or fresh install:
Where did you install Nextcloud from: Official Docker image
Signing status
Array
(
)
List of activated apps
Configuration (config/config.php)
Are you using external storage, if yes which one: no
Are you using encryption:
Are you using an external user-backend, if yes which one: no
Client configuration
Browser: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36
Operating system: Ubuntu 18.04.3 LTS, Cinnamon desktop, thunderbird, firefox, chrome
Logs
Web server error log
Nextcloud log
Browser log
Not relevant, behavior is identical regardless of browser or email client used
Here is a sample ICS file that fails:
bad_data.ics.txt
If you change X-ENTOURAGE_UUID to X-ENTOURAGE-UUID in the file, then everything works as expected. Since OPTION_FORGIVING is supposed to handle this, logically either the option is being ignored or whatever is processing the ICS file is not configured to use this option.
The text was updated successfully, but these errors were encountered: