Whiteboard images not loading

The Basics

  • Nextcloud Server version (e.g., 29.x.x):
    • Nextcloud Hub 26 Winter (33.0.7)
  • Operating system and version (e.g., Ubuntu 24.04):
    • Ubuntu 24.04.4 LTS
  • Web server and version (e.g, Apache 2.4.25):
    • Apache/2.4.68 (Unix)
  • Reverse proxy and version _(e.g. nginx 1.27.2)
    • None (self-hosted, no separate reverse proxy)
  • PHP version (e.g, 8.3):
    • 8.3.33
  • Is this the first time you’ve seen this error? (Yes / No)
    • yes
  • When did this problem seem to first start?
    • after usage of of the same whiteboard with multiple users, at the same time
  • Installation method (e.g. AlO, NCP, Bare Metal/Archive, etc.)
    • no
  • Are you using CloudfIare, mod_security, or similar? (Yes / No)
    • no

Summary of the issue you are facing:

When using a whiteboard some pictures do not load, there is a placeholder shown instead. This happens with images uploaded from a device and pictures copied from google, WhatsApp. etc. The size of the images don’t seem to have an affect on this. I have replicated this issue on two separate and independent Nextcloud-AIO instances. (Each instance has been setup by different people, making misconfiguration seem unlikely.)

Steps to replicate it :

  1. Create a whiteboard

  2. Open the whiteboard with two different accounts. (Or create a public share-link for the whiteboard and open it with another browser / private window)

  3. Start pasting pictures into the whiteboards using both the different accounts. Keep dev-tools open in one browser-window, you should start seeing errors.

Log entries

Nextcloud

nextcloud.log

no logs relevant logs from nextcloud.log while reproducing the issue

Web Browser

logger.ts:41 [Sync] Local sync failed: DataCloneError: Failed to execute 'postMessage' on 'Worker': async(e,t,n,a)=>{let i;try{i=await uN()}catch(r){return r.name==="AbortError"||r.name==="NotAllowedError"?!1:(c...<omitted>...}} could not be cloned.
    at useSync.ts:139:11
    at useSync.ts:429:3
    at Object.onChange (App.tsx:454:3)
(anonymous)	@	logger.ts:41

Web server / Reverse Proxy

Apache/nginx/system log in /var/log/____:

no relevant logs found

Configuration

Nextcloud

occ config:list system

{
    "system": {
        "one-click-instance": true,
        "one-click-instance.user-limit": 100,
        "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
            }
        ],
        "check_data_directory_permissions": false,
        "memcache.distributed": "\\OC\\Memcache\\Redis",
        "memcache.locking": "\\OC\\Memcache\\Redis",
        "redis": {
            "host": "***REMOVED SENSITIVE VALUE***",
            "password": "***REMOVED SENSITIVE VALUE***",
            "port": 6379,
            "timeout": 3,
            "read_timeout": 10
        },
        "overwritehost": "cloud.waelchliplan.ch",
        "overwriteprotocol": "https",
        "passwordsalt": "***REMOVED SENSITIVE VALUE***",
        "secret": "***REMOVED SENSITIVE VALUE***",
        "trusted_domains": [
            "localhost",
            "cloud.waelchliplan.ch"
        ],
        "datadirectory": "***REMOVED SENSITIVE VALUE***",
        "dbtype": "pgsql",
        "version": "33.0.7.1",
        "overwrite.cli.url": "https:\/\/cloud.waelchliplan.ch\/",
        "dbname": "***REMOVED SENSITIVE VALUE***",
        "dbhost": "***REMOVED SENSITIVE VALUE***",
        "dbtableprefix": "oc_",
        "dbuser": "***REMOVED SENSITIVE VALUE***",
        "dbpassword": "***REMOVED SENSITIVE VALUE***",
        "installed": true,
        "instanceid": "***REMOVED SENSITIVE VALUE***",
        "maintenance": false,
        "updatechecker": false,
        "loglevel": 2,
        "log_type": "file",
        "logfile": "\/var\/www\/html\/data\/nextcloud.log",
        "log_rotate_size": 10485760,
        "log.condition": {
            "apps": [
                "admin_audit"
            ]
        },
        "preview_max_x": 2048,
        "preview_max_y": 2048,
        "jpeg_quality": 60,
        "enabledPreviewProviders": {
            "1": "OC\\Preview\\Image",
            "2": "OC\\Preview\\MarkDown",
            "3": "OC\\Preview\\MP3",
            "4": "OC\\Preview\\TXT",
            "5": "OC\\Preview\\OpenDocument",
            "6": "OC\\Preview\\Movie",
            "7": "OC\\Preview\\Krita",
            "0": "OC\\Preview\\Imaginary",
            "23": "OC\\Preview\\ImaginaryPDF"
        },
        "enable_previews": true,
        "upgrade.disable-web": true,
        "mail_smtpmode": "smtp",
        "trashbin_retention_obligation": "auto, 30",
        "versions_retention_obligation": "auto, 30",
        "activity_expire_days": 30,
        "simpleSignUpLink.shown": false,
        "share_folder": "\/Shared",
        "one-click-instance.link": "https:\/\/nextcloud.com\/all-in-one\/",
        "upgrade.cli-upgrade-link": "https:\/\/github.com\/nextcloud\/all-in-one\/discussions\/2726",
        "updatedirectory": "\/nc-updater",
        "maintenance_window_start": 100,
        "allow_local_remote_servers": true,
        "davstorage.request_timeout": 3600,
        "documentation_url.server_logs": "https:\/\/github.com\/nextcloud\/all-in-one\/discussions\/5425",
        "htaccess.RewriteBase": "\/",
        "dbpersistent": false,
        "auth.bruteforce.protection.enabled": true,
        "ratelimit.protection.enabled": true,
        "files_external_allow_create_new_local": true,
        "trusted_proxies": "***REMOVED SENSITIVE VALUE***",
        "preview_imaginary_url": "***REMOVED SENSITIVE VALUE***",
        "preview_imaginary_key": "***REMOVED SENSITIVE VALUE***",
        "forbidden_filename_characters": [
            "\\",
            "\/"
        ],
        "forbidden_filename_extensions": [
            ".filepart",
            ".part"
        ],
        "log_type_audit": "file",
        "logfile_audit": "\/var\/www\/html\/data\/audit.log",
        "twofactor_enforced": "true",
        "twofactor_enforced_groups": [
            "WaelchliPlanTeam",
            "admin",
            "WP_IT"
        ],
        "twofactor_enforced_excluded_groups": [],
        "serverid": 445,
        "app_install_overwrite": [],
        "update_channel": "stable",
        "mail_smtppassword": "***REMOVED SENSITIVE VALUE***",
        "mail_smtpname": "***REMOVED SENSITIVE VALUE***",
        "mail_domain": "***REMOVED SENSITIVE VALUE***",
        "mail_from_address": "***REMOVED SENSITIVE VALUE***",
        "mail_smtphost": "***REMOVED SENSITIVE VALUE***",
        "mail_smtpauth": true,
        "mail_smtpport": "587",
        "mail_sendmailmode": "smtp",
        "mail_smtpstreamoptions": {
            "ssl": {
                "allow_self_signed": false,
                "verify_peer": true,
                "verify_peer_name": true
            }
        },
        "DOMAIN": "cloud.waelchliplan.ch",
        "AIO_VERSION": "v13.5.0"
    }
}
wael

Apps

The output of occ app:list (if possible).

Enabled:
  - activity: 6.0.0
  - admin_audit: 1.23.0
  - admincockpit: 1.3.5
  - app_api: 33.0.0
  - assistant: 3.5.0
  - audioplayer: 3.9.0
  - bruteforcesettings: 6.0.0
  - calendar: 6.5.3
  - circles: 33.0.0
  - cloud_federation_api: 1.17.0
  - command_bot: 1.3.0
  - comments: 1.23.0
  - contacts: 8.7.6
  - contactsinteraction: 1.14.1
  - context_chat: 5.4.0
  - dashboard: 7.13.0
  - dav: 1.36.0
  - deck: 1.17.4
  - encryption: 2.21.0
  - federatedfilesharing: 1.23.0
  - federation: 1.23.0
  - files: 2.5.0
  - files_3dmodelviewer: 0.0.16
  - files_accesscontrol: 4.0.1
  - files_antivirus: 6.4.0
  - files_automatedtagging: 4.0.0
  - files_downloadlimit: 5.1.0
  - files_external: 1.25.1
  - files_fulltextsearch: 33.0.0
  - files_pdfviewer: 6.0.0
  - files_reminders: 1.6.0
  - files_sharing: 1.25.2
  - files_trashbin: 1.23.0
  - files_versions: 1.26.0
  - firstrunwizard: 6.0.0
  - flow_notifications: 4.0.0
  - forms: 5.3.5
  - fulltextsearch: 33.0.0
  - fulltextsearch_elasticsearch: 33.0.0
  - groupfolders: 21.0.15
  - integration_openai: 4.5.2
  - keeweb: 0.6.24
  - libresign: 13.3.0
  - logreader: 6.0.0
  - lookup_server_connector: 1.21.0
  - mail: 5.10.13
  - nextcloud-aio: 0.8.0
  - nextcloud_announcements: 5.0.0
  - notes: 6.0.2
  - notifications: 6.0.0
  - notify_push: 1.4.0
  - oauth2: 1.21.0
  - password_policy: 5.0.0
  - photos: 6.0.0
  - polls: 9.1.4
  - privacy: 5.0.0
  - profile: 1.2.0
  - provisioning_api: 1.23.0
  - recommendations: 6.0.0
  - related_resources: 4.0.0
  - richdocuments: 10.3.0
  - serverinfo: 5.0.0
  - settings: 1.16.0
  - sharebymail: 1.23.0
  - spreed: 23.0.10
  - support: 5.0.0
  - survey_client: 5.0.0
  - systemtags: 1.23.0
  - tables: 2.2.2
  - talk_matterbridge: 1.34.1026000
  - tasks: 0.18.1
  - teamhub: 4.7.1
  - text: 7.0.1
  - theming: 2.8.0
  - thesearchpage: 2.4.5
  - twofactor_admin: 4.12.0
  - twofactor_backupcodes: 1.22.0
  - twofactor_nextcloud_notification: 7.0.0
  - twofactor_totp: 15.0.0
  - updatenotification: 1.23.0
  - user_status: 1.13.0
  - viewer: 6.0.0
  - weather_status: 1.13.0
  - webhook_listeners: 1.5.0
  - whiteboard: 1.5.9
  - workflow_ocr: 1.33.1
  - workflow_script: 4.0.1
  - workflowengine: 2.15.0
Disabled:
  - files_fulltextsearch_metadata: 0.1.1 (installed 0.1.1)
  - files_linkeditor: 1.1.26 (installed 1.1.26)
  - files_scripts: 5.0.1 (installed 5.0.1)
  - linkboard: 1.11.1 (installed 1.11.1)
  - suspicious_login: 11.0.0
  - user_ldap: 1.24.0


Any help is appreciated !

Thanks in advance

The browser log shows a DataCloneError in useSync.ts, so the failure looks client-side before the image reaches the server. Testing the Whiteboard in a fresh browser profile would help separate that from the AIO setup.

Thanks for replying !

I’ve set up two different browser profiles using firefox and chrome. Again when pasting images from different sources via both accounts, I’ve encountered the same DataCloneError in useSync.ts. I’ve attached the error below (doesn’t differ from the one I’ve shared before).

logger.ts:41 [Sync] Local sync failed: DataCloneError: Failed to execute 'postMessage' on 'Worker': async(e,t,n,a)=>{let i;try{i=await uN()}catch(r){return r.name==="AbortError"||r.name==="NotAllowedError"?!1:(c...<omitted>...}} could not be cloned.
    at useSync.ts:139:11
    at useSync.ts:429:3
    at Object.onChange (App.tsx:454:3)
(anonymous)	@	logger.ts:41

I’ve tested this on two different Nextcloud-Instances, with fresh browser profiles. Same Error.

Again thank you for answering so quickly, any other ideas why this might be happening are appreciated. Maybe file an Issue on GitHub?