Just installed whiteboard app, whiteboards not saved (offline warning)

Support intro

Sorry to hear you’re facing problems. :slightly_frowning_face:

The community help forum (help.nextcloud.com) is for home and non-enterprise users. Support is provided by other community members on a best effort / “as available” basis. All of those responding are volunteering their time to help you.

If you’re using Nextcloud in a business/critical setting, paid and SLA-based support services can be accessed via portal.nextcloud.com where Nextcloud engineers can help ensure your business keeps running smoothly.

Getting help

In order to help you as efficiently (and quickly!) as possible, please fill in as much of the below requested information as you can.

Before clicking submit: Please check if your query is already addressed via the following resources:

(Utilizing these existing resources is typically faster. It also helps reduce the load on our generous volunteers while elevating the signal to noise ratio of the forums otherwise arising from the same queries being posted repeatedly).

Some or all of the below information will be requested if it isn’t supplied; for fastest response please provide as much as you can. :heart:

The Basics

  • Nextcloud Server version (e.g., 29.x.x):
    • 31.0.10
  • Operating system and version (e.g., Ubuntu 24.04):
    • Ubuntu 22.04.5
  • Web server and version (e.g, Apache 2.4.25):
    • Apache 2.4.52
  • Reverse proxy and version _(e.g. nginx 1.27.2)
    • Apache 2.4.65
  • PHP version (e.g, 8.3):
    • 8.1
  • Is this the first time you’ve seen this error? (Yes / No):
    • Yes
  • When did this problem seem to first start?
    • Installed the app, never worked
  • Installation method (e.g. AlO, NCP, Bare Metal/Archive, etc.)
    • "Classic" installation on Ubuntu, using downloaded tar.gz
  • Are you using CloudfIare, mod_security, or similar? (Yes / No)
    • No

Summary of the issue you are facing:

I installed the Whiteboard app from the admin interface. I went and created a new Whiteboard from the Files web view. Opened it, edited it a bit. The .whiteboard file remains empty. No changes seems to be stored in there. In the browser, when the whiteboard is open, I can see a red wifi like button red, saying “offline”.

If I close and reopen on the same browser, I can see the contents.

Opening from another browser, the file is empty.

I haven’t installed the websocket server. It is repeated at several parts in the documentation that it’s not required for basic funcionality, only for real-time communication. I only want this feature for my personal notes, I don’t need any collaboration with other users.

Do I still need some sort of external backend or server?

Steps to replicate it (hint: details matter!):

  1. Install whiteboard app (only)

  2. Create whiteboard file

  3. Edit, close

  4. Open from other browser

  5. Whiteboard is empty

  6. Open again from first browser

  7. Whiteboard content is there

Log entries

Nextcloud

Please provide the log entries from your Nextcloud log that are generated during the time of problem (via the Copy raw option from Administration settings->Logging screen or from your nextcloud.log located in your data directory). Feel free to use a pastebin/gist service if necessary.

{"reqId":"jDCltNhZHUKNDljOJwK7","level":3,"time":"2025-10-26T13:52:32+00:00","remoteAddr":"192.168.1.5","user":"sargue","app":"whiteboard","method":"GET","url":"/index.php/apps/whiteboard/library","message":"Exception handled: OCA\\Whiteboard\\Exception\\UnauthorizedException","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36","version":"31.0.10.2","data":{"app":"whiteboard","file":"/var/www/[REDACTED]/apps/whiteboard/lib/Service/JWTService.php","line":"68","status_code":"401"},"id":"68fe2abb30769"}

Web Browser

If the problem is related to the Web interface, open your browser inspector Console and Network tabs while refreshing (reloading) and reproducing the problem. Provide any relevant output/errors here that appear.

PASTE

Web server / Reverse Proxy

The output of your Apache/nginx/system log in /var/log/____:

PASTE HERE

Configuration

Nextcloud

The output of occ config:list system or similar is best, but, if not possible, the contents of your config.php file from /path/to/nextcloud is fine (make sure to remove any identifiable information!):

{
    "system": {
        "instanceid": "***REMOVED SENSITIVE VALUE***",
        "passwordsalt": "***REMOVED SENSITIVE VALUE***",
        "secret": "***REMOVED SENSITIVE VALUE***",
        "trusted_domains": [
            "[REDACTED]"
        ],
        "trusted_proxies": "***REMOVED SENSITIVE VALUE***",
        "datadirectory": "***REMOVED SENSITIVE VALUE***",
        "overwriteprotocol": "https",
        "overwrite.cli.url": "https:\/\/[REDACTED]",
        "dbtype": "mysql",
        "version": "31.0.10.2",
        "dbname": "***REMOVED SENSITIVE VALUE***",
        "dbhost": "***REMOVED SENSITIVE VALUE***",
        "dbport": "",
        "dbtableprefix": "oc_",
        "mysql.utf8mb4": true,
        "dbuser": "***REMOVED SENSITIVE VALUE***",
        "dbpassword": "***REMOVED SENSITIVE VALUE***",
        "installed": true,
        "memcache.local": "\\OC\\Memcache\\APCu",
        "memcache.distributed": "\\OC\\Memcache\\Redis",
        "memcache.locking": "\\OC\\Memcache\\Redis",
        "redis": {
            "host": "***REMOVED SENSITIVE VALUE***",
            "port": 6379
        },
        "mail_from_address": "***REMOVED SENSITIVE VALUE***",
        "mail_smtpmode": "smtp",
        "mail_smtpauthtype": "LOGIN",
        "mail_domain": "***REMOVED SENSITIVE VALUE***",
        "maintenance": false,
        "loglevel": 2,
        "mail_smtpauth": 1,
        "mail_smtpsecure": "tls",
        "mail_smtpname": "***REMOVED SENSITIVE VALUE***",
        "mail_smtppassword": "***REMOVED SENSITIVE VALUE***",
        "mail_smtphost": "***REMOVED SENSITIVE VALUE***",
        "mail_smtpport": "587",
        "theme": "",
        "data-fingerprint": "[REDACTED]",
        "default_phone_region": "ES",
        "maintenance_window_start": 1,
        "app_install_overwrite": []
    }
}

Apps

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

Resum

Enabled:

  • activity: 4.0.0
  • app_api: 5.0.2
  • bruteforcesettings: 4.0.0
  • circles: 31.0.0
  • cloud_federation_api: 1.14.0
  • comments: 1.21.0
  • contactsinteraction: 1.12.1
  • dashboard: 7.11.0
  • dav: 1.33.0
  • federatedfilesharing: 1.21.0
  • federation: 1.21.0
  • files: 2.3.1
  • files_downloadlimit: 4.0.0
  • files_pdfviewer: 4.0.0
  • files_reminders: 1.4.0
  • files_sharing: 1.23.1
  • files_trashbin: 1.21.0
  • files_versions: 1.24.0
  • firstrunwizard: 4.0.0
  • gpoddersync: 3.13.1
  • logreader: 4.0.0
  • lookup_server_connector: 1.19.0
  • nextcloud_announcements: 3.0.0
  • notes: 4.12.3
  • notifications: 4.0.0
  • oauth2: 1.19.1
  • password_policy: 3.0.0
  • photos: 4.0.0
  • privacy: 3.0.0
  • profile: 1.0.0
  • provisioning_api: 1.21.0
  • recommendations: 4.0.0
  • related_resources: 2.0.0
  • serverinfo: 3.0.0
  • settings: 1.14.0
  • sharebymail: 1.21.0
  • support: 3.0.0
  • survey_client: 3.0.0
  • suspicious_login: 9.0.1
  • systemtags: 1.21.1
  • text: 5.0.2
  • theming: 2.6.1
  • twofactor_backupcodes: 1.20.0
  • twofactor_nextcloud_notification: 5.0.0
  • twofactor_totp: 13.0.0-dev.0
  • twofactor_webauthn: 2.4.1
  • updatenotification: 1.21.0
  • user_status: 1.11.0
  • viewer: 4.0.0
  • weather_status: 1.11.0
  • webhook_listeners: 1.2.0
  • whiteboard: 1.4.0
  • workflowengine: 2.13.0
    Disabled:
  • admin_audit: 1.21.0
  • encryption: 2.19.0
  • files_external: 1.23.0
  • user_ldap: 1.22.0

Tips for increasing the likelihood of a response

  • Use the preformatted text formatting option in the editor for all log entries and configuration output.
  • If screenshots are useful, feel free to include them.
    • If possible, also include key error output in text form so it can be searched for.
  • Try to edit log output only minimally (if at all) so that it can be ran through analyzers / formatters by those trying to help you.
1 Like

Did you figure it out? I have the same issue… I suspect the websocket server might be required to just save on the sever…. that would be a bit strange, but I didn’t even think of that before reading your post, so I guess I will configure it and report back here.

No news from my side. It’s just not working. I tried a quick setup with the websocket server, but I couldn’t connect it. I will need to spend some more time with it.

But the documentation, as I’ve said in my original post, seems very specific that the external server is optional.

Please share any findings.

I installed the web socket and that fixed it. Now it works as expected, updating the file on the server. Also, before I installed it, I tried uploading a file created in excalidraw and it just showed blank, after installing websocket it is now also working.

It’s a bit disappointing that nobody replied with this information… but anyway, hope other people will find this if they have the same issue in future. Whiteboard needs the websocket to be able to load and save files.

1 Like

Glad you figured it out!

Just chiming in that it is mentioned as follows when installing the app (in the App Store):

Whiteboard requires a separate collaboration server to work.

While the README.md file in the repository says it is only needed for collaboration features:

Important: The websocket server is only needed for live collaboration - basic whiteboard functionality works without it.

… I also have the same experience as you, where it would refuse to save my work without it.

I have the same error, I tried to setup the whiteboard container and configured the settings in admin settings but I can’t seem to figure out to make it work…

Can someone tell what type of Nextcloud expects in the admin settings?

Can you elaborate on how did you fix this? Was it easy?

So, I’m running the “nextcloud collaboration server” as a docker container, listening on port 3002.

But I cannot use that directly on my server because my Nextcloud is listening on HTTPS and that server port 3002 just listens to HTTP. Also, that’s only local, so I will need to add it to my reverse proxy config. Do I need a full domain? I just published it in my same nextcloud domain, under /whiteboard, but that’s feels just hacky and I’m worried to use that path. Oh, yes, it worked. But it doesn’t feel right.

I’m really surprised at how bad documented is this app. I don’t really understand how anyone is actually using this, apart from someone that REALLY needs this working and spends quite some time figuring this out.

Also, given this thread, other people is having trouble but it seems nobody cares to fix the app’s documentation, or explain why for single user we need to deploy another server, set up HTTPS, maybe another domain.

I think I’m giving up on this app, it’s not worth it so much complexity. And I don’t want to be exposed to things breaking up with some update and be left with no documentation or support.

Why does that feel hacky or wrong? Are we now making these assessments based on feelings? :wink:
I guess, you could expose it via a separate subdomain or IP, but I don’t really see any advantage in doing so when the backend is running on the same server.

You don’t. And if you had actually read the documentation you’re complaining about, you’d know that: whiteboard/README.md at main · nextcloud/whiteboard · GitHub

To be fair, that wasn’t the case in the beginning. There were issues where the whiteboard content wouldn’t be saved without the backend. However, as far as I know, those issues should be fixed in recent versions of the app.

Okay, it doesn’t seem to be possible to actually save whiteboards as files without the backend. The content appears to persist in the browser, but to properly save the whiteboards, the backend is required.

So yes, you can use the app without a backend, but only in a very limited way. :wink:

I mean using the /whiteboard path on the same domain as the main Nextcloud deployment. Maybe it works, because I guess Nextcloud doesn’t use that path, but that’s not safe in case some future app or change on Nextcloud starts using that path.

Again, this is simply a lack of documentation.

:man_facepalming: You’re technically right but… come on! :laughing:

You can use /somerandomstring if you want to be extra sure that it’s never used by anything else.

Yeah, I’d say that’s where the documentation could (or should) be clearer. It should explicitly mention that saving whiteboards as files does not work without the backend.

Or maybe it is supposed to work and there’s a bug preventing it…? But then again, it works fine once the backend is set up, so either way, I don’t really see this as a major issue.