Error when clicking on Talk conversation that contains Deck card links
Nobody has claimed this yet.
- Dominant language
- JavaScript
- Stars
- 1.4k
- Forks
- 354
- Avg merge
- 1d 10h
- Merged PRs (30d)
- 43
Description
How to use GitHub
- Please use the 👍 reaction to show that you are affected by the same issue.
- Please don't comment if you have no relevant information to add. It's just extra noise for everyone subscribed to this issue.
- Subscribe to receive notifications on status change and new comments.
Describe the bug
In the nextcloud.log file there are sometimes errors when I click on a Talk conversation that contains a link to a Deck card.
I am not sure if the links got inserted via the smart picker or if it was just a copy paste of the link.
There is one conversation where only one link to a Deck card exists and this link does not get rendered. It is just a link. Clicking on this conversation I am able to reproduce the error. Some other conversations just work witout any errors.
Also strange: I am pretty sure, that the link got rendered successfully for the first few days. Now it does not (see screenshot)
To Reproduce
Steps to reproduce the behavior:
- Go to Talk
- Paste a link to a Deck card
- Here I don't know what is going wrong. Perhaps wait some time?
- Click on the Talk conversation
- See error in the nextcloud.log file
Expected behavior
No errors in nextcloud.log
Screenshot
Client details:
- OS: Windows 10
- Browser: Firefox ESR (but same behaviour with Microsoft Edge)
- Version: 115.6.0esr (64-Bit)
- Device: Laptop
Server details
Operating system: Ubuntu 22.04 LTS
Web server: Apache
Database: PostgreSQL 14.10
PHP version: 8.1.2
Nextcloud version: 26.0.10
Where did you install Nextcloud from: nextcloud.com
Signing status:
No errors have been found.
List of activated apps:
Enabled:
- activity: 2.18.0
- admin_audit: 1.16.0
- bookmarks: 13.1.3
- calendar: 4.6.3
- circles: 26.0.1
- cloud_federation_api: 1.9.0
- comments: 1.16.0
- contacts: 5.5.1
- contactsinteraction: 1.7.0
- dashboard: 7.6.0
- dav: 1.25.0
- deck: 1.9.5
- federatedfilesharing: 1.16.0
- files: 1.21.1
- files_accesscontrol: 1.16.2
- files_automatedtagging: 1.16.1
- files_lock: 27.0.3
- files_mindmap: 0.0.30
- files_pdfviewer: 2.7.0
- files_retention: 1.15.0
- files_rightclick: 1.5.0
- files_sharing: 1.18.0
- files_trashbin: 1.16.0
- files_versions: 1.19.1
- flow_notifications: 1.6.0
- forms: 3.4.4
- groupfolders: 14.0.6
- guests: 2.5.1
- impersonate: 1.13.1
- integration_discourse: 2.0.5
- integration_openstreetmap: 1.0.6
- integration_youtube: 0.1.5
- integration_zammad: 2.0.6
- logreader: 2.11.0
- lookup_server_connector: 1.14.0
- notes: 4.9.2
- notifications: 2.14.0
- notify_push: 0.6.6
- oauth2: 1.14.1
- onlyoffice: 7.9.4
- password_policy: 1.16.0
- photos: 2.2.0
- polls: 5.4.2
- privacy: 1.10.0
- provisioning_api: 1.16.0
- quota_warning: 1.18.0
- recognize: 4.3.2
- recommendations: 1.5.0
- related_resources: 1.1.0
- sendent: 2.0.5
- serverinfo: 1.16.0
- settings: 1.8.0
- sharebymail: 1.16.0
- spreed: 16.0.9
- support: 1.9.0
- survey_client: 1.14.0
- suspicious_login: 4.4.0
- systemtags: 1.16.0
- tasks: 0.15.0
- text: 3.7.2
- theming: 2.1.1
- theming_customcss: 1.15.0
- translate: 1.2.0
- twofactor_backupcodes: 1.15.0
- twofactor_nextcloud_notification: 3.8.0
- twofactor_totp: 8.0.0
- updatenotification: 1.16.0
- user_ldap: 1.16.0
- user_status: 1.6.0
- user_usage_report: 1.10.0
- viewer: 1.10.0
- weather_status: 1.6.0
- welcome: 1.0.10
- workflowengine: 2.8.0
Disabled:
- approval: 1.1.1
- bruteforcesettings: 2.6.0 (installed 2.3.0)
- encryption: 2.14.0
- federation: 1.16.0 (installed 1.3.0)
- files_external: 1.18.0
- firstrunwizard: 2.15.0 (installed 2.2.1)
- globalsiteselector: 2.4.5
- nextcloud_announcements: 1.15.0 (installed 1.7.0)
- user_saml: 5.2.5
Nextcloud configuration:
{
"system": {
"passwordsalt": "***REMOVED SENSITIVE VALUE***",
"secret": "***REMOVED SENSITIVE VALUE***",
"trusted_domains": [
"localhost",
"***REMOVED SENSITIVE VALUE***",
"***REMOVED SENSITIVE VALUE***",
"***REMOVED SENSITIVE VALUE***",
"***REMOVED SENSITIVE VALUE***",
],
"datadirectory": "***REMOVED SENSITIVE VALUE***",
"overwrite.cli.url": "***REMOVED SENSITIVE VALUE***",
"overwritehost": "***REMOVED SENSITIVE VALUE***",
"dbtype": "pgsql",
"version": "26.0.10.2",
"dbname": "***REMOVED SENSITIVE VALUE***",
"dbhost": "***REMOVED SENSITIVE VALUE***",
"dbport": "",
"dbtableprefix": "oc_",
"dbuser": "***REMOVED SENSITIVE VALUE***",
"dbpassword": "***REMOVED SENSITIVE VALUE***",
"installed": true,
"instanceid": "***REMOVED SENSITIVE VALUE***",
"mail_smtpmode": "smtp",
"log_rotate_size": "10485760",
"memcache.local": "\\OC\\Memcache\\Redis",
"filelocking.enabled": true,
"memcache.distributed": "\\OC\\Memcache\\Redis",
"memcache.locking": "\\OC\\Memcache\\Redis",
"redis": {
"host": "***REMOVED SENSITIVE VALUE***",
"port": 0,
"timeout": 0.5,
"dbindex": 0,
"password": "***REMOVED SENSITIVE VALUE***"
},
"htaccess.RewriteBase": "\/",
"maintenance": false,
"ldapIgnoreNamingRules": false,
"ldapProviderFactory": "\\OCA\\User_LDAP\\LDAPProviderFactory",
"mail_smtpauthtype": "LOGIN",
"mail_from_address": "***REMOVED SENSITIVE VALUE***",
"mail_domain": "***REMOVED SENSITIVE VALUE***",
"mail_smtphost": "***REMOVED SENSITIVE VALUE***",
"mail_smtpport": "25",
"theme": "",
"loglevel": 2,
"updater.release.channel": "enterprise",
"data-fingerprint": "***REMOVED SENSITIVE VALUE***",
"skeletondirectory": "\/var\/www\/nc-skeleton",
"updater.server.url": "***REMOVED SENSITIVE VALUE***",
"trusted_proxies": "***REMOVED SENSITIVE VALUE***",
"default_phone_region": "DE",
"default_language": "de",
"default_locale": "de_DE",
"twofactor_enforced": "true",
"twofactor_enforced_groups": [],
"twofactor_enforced_excluded_groups": [
"***REMOVED SENSITIVE VALUE***",
],
"share_folder": "Freigaben",
"auth.storeCryptedPassword": "false",
"logtimezone": "Europe\/Berlin",
"mail_smtpstreamoptions": {
"ssl": {
"allow_self_signed": true,
"verify_peer": false,
"verify_peer_name": false
}
},
"enabledPreviewProviders": [
"OC\\Preview\\HEIC",
"OC\\Preview\\Image",
"OC\\Preview\\Movie",
"OC\\Preview\\TIFF"
]
}
}
Are you using an external user-backend, if yes which one: ActiveDirectory
Logs
Nextcloud log (data/nextcloud.log)
{"reqId":"VuhyHiRQSK1vdVbxnly6","level":3,"time":"2024-01-10T10:12:38+01:00","remoteAddr":"10.10.10.10","user":"ABCDEF","app":"PHP","method":"GET","url":"/ocs/v2.php/references/resolve?reference=%20https%3A%2F%2Fnextcloud-url.de%2Fapps%2Fdeck%2F%23%2Fboard%2F126%2Fcard%2F828","message":"Undefined array key \"cards\" at /var/www/nextcloud/apps/deck/lib/Reference/CardReferenceProvider.php#158","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/115.0","version":"26.0.10.2","data":{"app":"PHP"}}
{"reqId":"VuhyHiRQSK1vdVbxnly6","level":3,"time":"2024-01-10T10:12:38+01:00","remoteAddr":"10.10.10.10","user":"ABCDEF","app":"no app in context","method":"GET","url":"/ocs/v2.php/references/resolve?reference=%20https%3A%2F%2Fnextcloud-url.de%2Fapps%2Fdeck%2F%23%2Fboard%2F126%2Fcard%2F828","message":"Exception thrown: Exception","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/115.0","version":"26.0.10.2","exception":{"Exception":"Exception","Message":"array_map(): Argument #2 ($array) must be of type array, null given in file '/var/www/nextcloud/apps/deck/lib/Reference/CardReferenceProvider.php' line 158","Code":0,"Trace":[{"file":"/var/www/nextcloud/lib/private/AppFramework/App.php","line":183,"function":"dispatch","class":"OC\\AppFramework\\Http\\Dispatcher","type":"->"},{"file":"/var/www/nextcloud/lib/private/Route/Router.php","line":315,"function":"main","class":"OC\\AppFramework\\App","type":"::"},{"file":"/var/www/nextcloud/ocs/v1.php","line":65,"function":"match","class":"OC\\Route\\Router","type":"->"},{"file":"/var/www/nextcloud/ocs/v2.php","line":23,"args":["/var/www/nextcloud/ocs/v1.php"],"function":"require_once"}],"File":"/var/www/nextcloud/lib/private/AppFramework/Http/Dispatcher.php","Line":169,"Previous":{"Exception":"TypeError","Message":"array_map(): Argument #2 ($array) must be of type array, null given","Code":0,"Trace":[{"file":"/var/www/nextcloud/apps/deck/lib/Reference/CardReferenceProvider.php","line":158,"function":"array_map"},{"file":"/var/www/nextcloud/apps/deck/lib/Reference/CardReferenceProvider.php","line":137,"function":"sanitizeSerializedStack","class":"OCA\\Deck\\Reference\\CardReferenceProvider","type":"->"},{"file":"/var/www/nextcloud/lib/private/Collaboration/Reference/ReferenceManager.php","line":138,"function":"resolveReference","class":"OCA\\Deck\\Reference\\CardReferenceProvider","type":"->"},{"file":"/var/www/nextcloud/core/Controller/ReferenceApiController.php","line":70,"function":"resolveReference","class":"OC\\Collaboration\\Reference\\ReferenceManager","type":"->"},{"file":"/var/www/nextcloud/lib/private/AppFramework/Http/Dispatcher.php","line":230,"function":"resolveOne","class":"OC\\Core\\Controller\\ReferenceApiController","type":"->"},{"file":"/var/www/nextcloud/lib/private/AppFramework/Http/Dispatcher.php","line":137,"function":"executeController","class":"OC\\AppFramework\\Http\\Dispatcher","type":"->"},{"file":"/var/www/nextcloud/lib/private/AppFramework/App.php","line":183,"function":"dispatch","class":"OC\\AppFramework\\Http\\Dispatcher","type":"->"},{"file":"/var/www/nextcloud/lib/private/Route/Router.php","line":315,"function":"main","class":"OC\\AppFramework\\App","type":"::"},{"file":"/var/www/nextcloud/ocs/v1.php","line":65,"function":"match","class":"OC\\Route\\Router","type":"->"},{"file":"/var/www/nextcloud/ocs/v2.php","line":23,"args":["/var/www/nextcloud/ocs/v1.php"],"function":"require_once"}],"File":"/var/www/nextcloud/apps/deck/lib/Reference/CardReferenceProvider.php","Line":158},"CustomMessage":"Exception thrown: Exception"}}
Browser log
Insert your browser log here, this could for example include:
a) The javascript console log
b) The network log
c) ...
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/deck/lib/Reference/CardReferenceProvider.php around line 158 and follow the /ocs/v2.php/references/resolve request shown in the trace. Reproduce with a Talk conversation containing a Deck card link, then verify that the reference renders without an array error in nextcloud.log.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript, php
- Domain
- api, backend
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100