Skip to content

Link previews fail to populate often, despite metadata being resolved successfully #17881

@tyzbit

Description

@tyzbit

Tip

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.

Steps to reproduce

  1. Send a link to a page that has OpenGraph info (most social media sites do), or other resolvable metadata.
  2. Talk may or may not show a link preview, not sure what determines success or failure.
  3. Inspect the element and see the description field, for example, does have data but has an element-level CSS declaration of display: none.

Expected behaviour

The preview should populate.

Actual behaviour

The preview does not populate.

Example: The first link populates a preview successfully, but the second does not despite both being from the same site and being similar posts.

https://mastodon.xyz/@nextcloud/116092044856390715
https://mastodon.xyz/@nextcloud/116483496632525540

Image

The description field for the second link is populated, and if it was not display: none, it would be visible.

Image

Talk app

Talk app version: 23.0.4

Custom Signaling server configured: Yes, 2.1.0~docker

Custom TURN server configured: Yes

Custom STUN server configured: Yes

Browser

Microphone available: yes

Camera available: yes

Operating system: Linux (Bazzite, based on Fedora Atomic 43)

Browser name: Vivaldi (same behavior in the Talk desktop and mobile apps)

Browser version:

Version: 7.9.3970.59 (Official Build) (64-bit)
Chromium Version: 146.0.7680.211
Channel: Official Build
Platform / OS: Linux - org.freedesktop.platform 25.08
Executable Path: /app/vivaldi/vivaldi
Command Line: /app/vivaldi/vivaldi --enable-features=WebRTCPipeWireCapturer --disable-features=WebAssemblyTrapHandler,DesktopPWAsRunOnOsLogin --class=Vivaldi-flatpak --no-default-browser-check --flag-switches-begin --flag-switches-end --ozone-platform=wayland --origin-trial-disabled-features=CanvasTextNg|WebAssemblyCustomDescriptors --render-node-override=/dev/dri/renderD128

Browser log

Details ``` juy332nq:188 GET https://static.cloudflareinsights.com/beacon.min.js/v8c78df7c7c0f484497ecbca7046644da1771523124516 net::ERR_BLOCKED_BY_CLIENT images.js:55 [WARN] viewer: Some mimes were ignored because they are not enabled in the server previews config {app: 'viewer', uid: 'tyzbit', level: 2, ignoredMimes: Array(3)} log @ index.mjs:44 warn @ index.mjs:62 (anonymous) @ images.js:55 browserCheck.ts:74 Detected browser Chrome 146 (146.0.0.0) UserMenu.js:15 [WARN] @nextcloud/vue: You need to fill either the text or the ariaLabel props in the button component. {uid: 'tyzbit', app: '@nextcloud/vue', level: 2, text: undefined, ariaLabel: null, …} log @ index.mjs:44 warn @ index.mjs:62 render @ NcButton-BaZAY-tN.mjs:236 e._render @ vue.runtime.esm.js:2700 a @ vue.runtime.esm.js:3891 e.get @ vue.runtime.esm.js:3462 e @ vue.runtime.esm.js:3452 e @ vue.runtime.esm.js:3908 Na.$mount @ vue.runtime.esm.js:8797 init @ vue.runtime.esm.js:4427 (anonymous) @ vue.runtime.esm.js:6591 m @ vue.runtime.esm.js:6545 f @ vue.runtime.esm.js:6664 m @ vue.runtime.esm.js:6568 f @ vue.runtime.esm.js:6664 m @ vue.runtime.esm.js:6568 f @ vue.runtime.esm.js:6664 m @ vue.runtime.esm.js:6568 (anonymous) @ vue.runtime.esm.js:7095 e._update @ vue.runtime.esm.js:3781 a @ vue.runtime.esm.js:3891 e.get @ vue.runtime.esm.js:3462 e @ vue.runtime.esm.js:3452 e @ vue.runtime.esm.js:3908 Na.$mount @ vue.runtime.esm.js:8797 init @ vue.runtime.esm.js:4427 (anonymous) @ vue.runtime.esm.js:6591 m @ vue.runtime.esm.js:6545 (anonymous) @ vue.runtime.esm.js:7095 e._update @ vue.runtime.esm.js:3781 a @ vue.runtime.esm.js:3891 e.get @ vue.runtime.esm.js:3462 e @ vue.runtime.esm.js:3452 e @ vue.runtime.esm.js:3908 Na.$mount @ vue.runtime.esm.js:8797 init @ vue.runtime.esm.js:4427 (anonymous) @ vue.runtime.esm.js:6591 m @ vue.runtime.esm.js:6545 (anonymous) @ vue.runtime.esm.js:7095 e._update @ vue.runtime.esm.js:3781 a @ vue.runtime.esm.js:3891 e.get @ vue.runtime.esm.js:3462 e @ vue.runtime.esm.js:3452 e @ vue.runtime.esm.js:3908 Na.$mount @ vue.runtime.esm.js:8797 init @ vue.runtime.esm.js:4427 (anonymous) @ vue.runtime.esm.js:6591 m @ vue.runtime.esm.js:6545 f @ vue.runtime.esm.js:6664 m @ vue.runtime.esm.js:6568 f @ vue.runtime.esm.js:6664 m @ vue.runtime.esm.js:6568 f @ vue.runtime.esm.js:6664 m @ vue.runtime.esm.js:6568 f @ vue.runtime.esm.js:6664 m @ vue.runtime.esm.js:6568 (anonymous) @ vue.runtime.esm.js:7095 e._update @ vue.runtime.esm.js:3781 a @ vue.runtime.esm.js:3891 e.get @ vue.runtime.esm.js:3462 e @ vue.runtime.esm.js:3452 e @ vue.runtime.esm.js:3908 Na.$mount @ vue.runtime.esm.js:8797 init @ vue.runtime.esm.js:4427 (anonymous) @ vue.runtime.esm.js:6591 m @ vue.runtime.esm.js:6545 (anonymous) @ vue.runtime.esm.js:7095 e._update @ vue.runtime.esm.js:3781 a @ vue.runtime.esm.js:3891 e.get @ vue.runtime.esm.js:3462 e @ vue.runtime.esm.js:3452 e @ vue.runtime.esm.js:3908 Na.$mount @ vue.runtime.esm.js:8797 init @ vue.runtime.esm.js:4427 (anonymous) @ vue.runtime.esm.js:6591 m @ vue.runtime.esm.js:6545 (anonymous) @ vue.runtime.esm.js:7133 e._update @ vue.runtime.esm.js:3781 a @ vue.runtime.esm.js:3891 e.get @ vue.runtime.esm.js:3462 e @ vue.runtime.esm.js:3452 e @ vue.runtime.esm.js:3908 Na.$mount @ vue.runtime.esm.js:8797 e._init @ vue.runtime.esm.js:5724 Na @ vue.runtime.esm.js:5785 (anonymous) @ UserMenu.js:15 hi @ init.js:86 (anonymous) @ main.js:22 MainMenu.js:27 [WARN] @nextcloud/vue: You need to fill either the text or the ariaLabel props in the button component. {uid: 'tyzbit', app: '@nextcloud/vue', level: 2, text: undefined, ariaLabel: null, …} log @ index.mjs:44 warn @ index.mjs:62 render @ NcButton-BaZAY-tN.mjs:236 e._render @ vue.runtime.esm.js:2700 a @ vue.runtime.esm.js:3891 e.get @ vue.runtime.esm.js:3462 e.run @ vue.runtime.esm.js:3538 ta @ vue.runtime.esm.js:4141 (anonymous) @ vue.runtime.esm.js:3159 pn @ vue.runtime.esm.js:3081 Promise.then un @ vue.runtime.esm.js:3106 bn @ vue.runtime.esm.js:3171 e.$nextTick @ vue.runtime.esm.js:2679 render @ NcActions-BcLis_nr.mjs:831 e._render @ vue.runtime.esm.js:2700 a @ vue.runtime.esm.js:3891 e.get @ vue.runtime.esm.js:3462 e @ vue.runtime.esm.js:3452 e @ vue.runtime.esm.js:3908 Na.$mount @ vue.runtime.esm.js:8797 init @ vue.runtime.esm.js:4427 (anonymous) @ vue.runtime.esm.js:6591 m @ vue.runtime.esm.js:6545 f @ vue.runtime.esm.js:6664 m @ vue.runtime.esm.js:6568 (anonymous) @ vue.runtime.esm.js:7133 e._update @ vue.runtime.esm.js:3781 a @ vue.runtime.esm.js:3891 e.get @ vue.runtime.esm.js:3462 e @ vue.runtime.esm.js:3452 e @ vue.runtime.esm.js:3908 Na.$mount @ vue.runtime.esm.js:8797 (anonymous) @ MainMenu.js:27 hi @ init.js:85 (anonymous) @ main.js:22 signaling.js:1177 Not connected to signaling server yet, defer joining room juy332nq ```

Server configuration

Operating system: Docker

Web server: Nginx

Database: MariaDB

PHP version: 8.4.20

Nextcloud Version: Nextcloud Hub 26 Winter (33.0.2)

List of activated apps:

Details
Enabled:
  - activity: 6.0.0
  - announcementbanner: 2.4.2
  - app_api: 33.0.0
  - bruteforcesettings: 6.0.0
  - checksum: 2.1.1
  - circles: 33.0.0
  - cloud_federation_api: 1.17.0
  - command_bot: 1.1.0
  - comments: 1.23.0
  - contactsinteraction: 1.14.1
  - dashboard: 7.13.0
  - data_request: 5.0.0
  - dav: 1.36.0
  - doom_nextcloud: 1.0.8
  - drop_account: 3.0.0
  - encryption: 2.21.0
  - end_to_end_encryption: 2.1.0
  - federatedfilesharing: 1.23.0
  - federation: 1.23.0
  - files: 2.5.0
  - files_archive: 1.2.8
  - files_downloadlimit: 5.1.0
  - files_pdfviewer: 6.0.0
  - files_photospheres: 1.33.0
  - files_reminders: 1.6.0
  - files_retention: 4.0.1
  - files_sharing: 1.25.2
  - files_trashbin: 1.23.0
  - files_versions: 1.26.0
  - files_zip: 2.3.0
  - firstrunwizard: 6.0.0
  - forms: 5.2.7
  - forum: 1.0.1
  - groupfolders: 21.0.7
  - impersonate: 4.0.0
  - integration_mastodon: 5.1.0
  - logreader: 6.0.0
  - lookup_server_connector: 1.21.0
  - music: 3.0.0
  - nextcloud_announcements: 5.0.0
  - notes: 5.0.0
  - notifications: 6.0.0
  - notify_push: 1.3.1
  - oauth2: 1.21.0
  - password_policy: 5.0.0
  - photos: 6.0.0
  - previewgenerator: 5.13.0
  - privacy: 5.0.0
  - profile: 1.2.0
  - provisioning_api: 1.23.0
  - recommendations: 6.0.0
  - registration: 2.9.0
  - related_resources: 4.0.0
  - richdocuments: 10.1.2
  - richdocumentscode: 25.4.904
  - serverinfo: 5.0.0
  - settings: 1.16.0
  - sharebymail: 1.23.0
  - spreed: 23.0.4
  - support: 5.0.0
  - survey_client: 5.0.0
  - systemtags: 1.23.0
  - text: 7.0.0
  - theming: 2.8.0
  - theming_customcss: 1.20.0
  - thesearchpage: 2.1.2
  - twofactor_backupcodes: 1.22.0
  - twofactor_totp: 15.0.0
  - updatenotification: 1.23.0
  - user_migration: 10.2.0
  - user_status: 1.13.0
  - viewer: 6.0.0
  - weather_status: 1.13.0
  - webhook_listeners: 1.5.0
  - workflowengine: 2.15.0
Disabled:
  - admin_audit: 1.23.0
  - files_external: 1.25.1
  - suspicious_login: 11.0.0
  - testing: 1.23.0
  - twofactor_nextcloud_notification: 7.0.0
  - user_ldap: 1.24.0

Nextcloud configuration:

Details
{
    "system": {
        "htaccess.RewriteBase": "\/",
        "memcache.local": "\\OC\\Memcache\\APCu",
        "apps_paths": [
            {
                "path": "\/var\/www\/html\/apps",
                "url": "\/apps",
                "writable": false
            },
            {
                "path": "\/var\/www\/html\/custom_apps",
                "url": "\/custom_apps",
                "writable": true
            }
        ],
        "memcache.distributed": "\\OC\\Memcache\\Redis",
        "memcache.locking": "\\OC\\Memcache\\Redis",
        "redis": {
            "host": "***REMOVED SENSITIVE VALUE***",
            "password": "***REMOVED SENSITIVE VALUE***",
            "port": 0
        },
        "mail_smtpmode": "smtp",
        "mail_smtphost": "***REMOVED SENSITIVE VALUE***",
        "mail_smtpport": "587",
        "mail_smtpsecure": "tls",
        "mail_smtpauth": true,
        "mail_smtpauthtype": "LOGIN",
        "mail_smtpname": "***REMOVED SENSITIVE VALUE***",
        "mail_from_address": "***REMOVED SENSITIVE VALUE***",
        "mail_domain": "***REMOVED SENSITIVE VALUE***",
        "mail_smtppassword": "***REMOVED SENSITIVE VALUE***",
        "upgrade.disable-web": true,
        "instanceid": "***REMOVED SENSITIVE VALUE***",
        "passwordsalt": "***REMOVED SENSITIVE VALUE***",
        "secret": "***REMOVED SENSITIVE VALUE***",
        "trusted_domains": [
            "***REMOVED SENSITIVE VALUE***"
        ],
        "datadirectory": "***REMOVED SENSITIVE VALUE***",
        "dbtype": "mysql",
        "version": "33.0.2.2",
        "overwrite.cli.url": "***REMOVED SENSITIVE VALUE***",
        "dbname": "***REMOVED SENSITIVE VALUE***",
        "dbhost": "***REMOVED SENSITIVE VALUE***",
        "dbtableprefix": "oc_",
        "mysql.utf8mb4": true,
        "dbuser": "***REMOVED SENSITIVE VALUE***",
        "dbpassword": "***REMOVED SENSITIVE VALUE***",
        "installed": true,
        "trusted_proxies": "***REMOVED SENSITIVE VALUE***",
        "maintenance": false,
        "twofactor_enforced": "true",
        "twofactor_enforced_groups": [
            "***REMOVED SENSITIVE VALUE***"
        ],
        "twofactor_enforced_excluded_groups": [
            "Forum Only"
        ],
        "defaultapp": "dashboard,spreed",
        "app_install_overwrite": [
            "files_archive"
        ],
        "loglevel": 2
    }
}

Server log (data/nextcloud.log)

No logs are generated on pageload.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions