CODE integrated server - documents not loading

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):
    • 33.0.1 RC1
  • Operating system and version (e.g., Ubuntu 24.04):
    • Arch Linux (aarch64)
  • Web server and version (e.g, Apache 2.4.25):
    • Apache 2.4.66
  • Reverse proxy and version _(e.g. nginx 1.27.2)
    • N/A
  • PHP version (e.g, 8.3):
    • 8.5.4
  • Is this the first time you’ve seen this error? (Yes / No):
    • yes
  • When did this problem seem to first start?
    • unclear
  • Installation method (e.g. AlO, NCP, Bare Metal/Archive, etc.)
    • manual
  • Are you using CloudfIare, mod_security, or similar? (Yes / No)
    • no

Summary of the issue you are facing:

I am not able to open documents with the built-in CODE server.

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

  1. Everything seems fine:

  2. Hosting / discovery gives a long list

  3. Hoting / capabilites:

convert-to
available true
endpoint “/cool/convert-to”
hasDocumentSigningSupport true
hasMobileSupport true
hasProxyPrefix true
hasSettingIframeSupport true
hasTemplateSaveAs false
hasTemplateSource true
hasWASMSupport false
hasWopiAccessCheck true
hasZoteroSupport true
productKitVersion “25.04.9.3”
productKitVersionHash “5a10f261”
productName “Collabora Online Development Edition”
productVersion “25.04.9.3”
productVersionHash “38f303a437”
serverId “39fcd0c3”

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.

<script src="https://gist.github.com/akuropka/87ce10bd44c63864638afa48432fce53.js"></script>

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.

see screenshot below

Web server / Reverse Proxy

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

no errors logged (error-file empty)

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***",
        "serverid": 0,
        "passwordsalt": "***REMOVED SENSITIVE VALUE***",
        "secret": "***REMOVED SENSITIVE VALUE***",
        "trusted_domains": [
            "cloud.kuropka.eu"
        ],
        "datadirectory": "***REMOVED SENSITIVE VALUE***",
        "dbtype": "mysql",
        "version": "33.0.1.0",
        "overwrite.cli.url": "https:\/\/cloud.kuropka.eu",
        "dbname": "***REMOVED SENSITIVE VALUE***",
        "dbhost": "***REMOVED SENSITIVE VALUE***",
        "dbport": "",
        "dbtableprefix": "oc_",
        "mysql.utf8mb4": true,
        "dbuser": "***REMOVED SENSITIVE VALUE***",
        "dbpassword": "***REMOVED SENSITIVE VALUE***",
        "installed": true,
        "twofactor_enforced": "true",
        "twofactor_enforced_groups": [],
        "twofactor_enforced_excluded_groups": [],
        "mail_smtpmode": "smtp",
        "mail_sendmailmode": "smtp",
        "mail_smtpauth": true,
        "mail_from_address": "***REMOVED SENSITIVE VALUE***",
        "mail_domain": "***REMOVED SENSITIVE VALUE***",
        "mail_smtphost": "***REMOVED SENSITIVE VALUE***",
        "mail_smtpport": "25",
        "mail_smtpname": "***REMOVED SENSITIVE VALUE***",
        "mail_smtppassword": "***REMOVED SENSITIVE VALUE***",
        "mail_smtptimeout": 30,
        "maintenance": false,
        "maintenance_window_start": 4,
        "default_phone_region": "DE",
        "memcache.local": "\\OC\\Memcache\\APCu",
        "memcache.locking": "\\OC\\Memcache\\Redis",
        "redis": {
            "host": "***REMOVED SENSITIVE VALUE***",
            "port": 6379,
            "timeout": 0,
            "password": "***REMOVED SENSITIVE VALUE***"
        },
        "updater.release.channel": "beta",
        "theme": "",
        "loglevel": 3,
        "log_rotate_size": 10240,
        "app_install_overwrite": [
            "richdocuments"
        ],
        "enable_previews": true,
        "enabledPreviewProviders": [
            "OC\\Preview\\PNG",
            "OC\\Preview\\JPEG",
            "OC\\Preview\\GIF",
            "OC\\Preview\\HEIC",
            "OC\\Preview\\BMP",
            "OC\\Preview\\XBitmap",
            "OC\\Preview\\MP3",
            "OC\\Preview\\TXT",
            "OC\\Preview\\MarkDown",
            "OC\\Preview\\Movie",
            "OC\\Preview\\MKV",
            "OC\\Preview\\MP4",
            "OC\\Preview\\AVI",
            "OC\\Preview\\PDF"
        ],
        "updater.secret": "***REMOVED SENSITIVE VALUE***"
    }
}

Apps

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

Enabled:

  • activity: 6.0.0-dev.0
  • bruteforcesettings: 6.0.0-dev.0
  • cloud_federation_api: 1.17.0
  • comments: 1.23.0
  • dav: 1.36.0
  • federatedfilesharing: 1.23.0
  • files: 2.5.0
  • files_downloadlimit: 5.1.0-dev.0
  • files_external: 1.25.1
  • files_pdfviewer: 6.0.0-dev.0
  • files_reminders: 1.6.0
  • files_sharing: 1.25.2
  • files_trashbin: 1.23.0
  • files_versions: 1.26.0
  • logreader: 6.0.0
  • lookup_server_connector: 1.21.0
  • nextcloud_announcements: 5.0.0
  • notifications: 6.0.0
  • oauth2: 1.21.0
  • password_policy: 5.0.0-dev.0
  • photos: 6.0.0-dev.0
  • privacy: 5.0.0-dev.0
  • profile: 1.2.0
  • provisioning_api: 1.23.0
  • recommendations: 6.0.0-dev.0
  • related_resources: 4.0.0-dev.0
  • richdocuments: 10.1.2
  • richdocumentscode_arm64: 25.4.903
  • serverinfo: 5.0.0-dev.0
  • settings: 1.16.0
  • text: 7.0.0-dev.3
  • theming: 2.8.0
  • twofactor_backupcodes: 1.22.0
  • twofactor_totp: 15.0.0-dev.0
  • updatenotification: 1.23.0
  • user_status: 1.13.0
  • viewer: 6.0.0-dev.0
  • workflowengine: 2.15.0
    Disabled:
  • admin_audit: 1.23.0
  • app_api: 33.0.0 (installed 33.0.0)
  • circles: 33.0.0 (installed 33.0.0)
  • contactsinteraction: 1.14.1 (installed 1.14.1)
  • dashboard: 7.13.0 (installed 7.13.0)
  • encryption: 2.21.0
  • federation: 1.23.0 (installed 1.23.0)
  • firstrunwizard: 6.0.0-dev.0 (installed 6.0.0-dev.0)
  • sharebymail: 1.23.0 (installed 1.23.0)
  • support: 5.0.0 (installed 5.0.0)
  • survey_client: 5.0.0-dev.0 (installed 5.0.0-dev.0)
  • suspicious_login: 11.0.0-dev.0
  • systemtags: 1.23.0 (installed 1.23.0)
  • testing: 1.23.0
  • twofactor_nextcloud_notification: 7.0.0
  • user_ldap: 1.24.0
  • weather_status: 1.13.0 (installed 1.13.0)
  • webhook_listeners: 1.5.0 (installed 1.5.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.

hey @akuropka and welcome to the forum of the nextcloud homuser community.

though you have provided a whole lot of information I wanted to ask some more things:

  • which manual were you following by installing your server?
  • have you read the offical manual closely?
  • have you searched the forum for similar problems (I know there are a ton of similar issues on here)

The last guy having come up with that kind of problem entered a URL where an IP-address was needed.

Hello @akuropka,

welcome to the Nextcloud community! :handshake:

look at collabora integration guide for more hints and references.

I’m wondering you are using ARM variant of the CODE but the base system looks more like x64.. maybe you can add more details?

@JimmyKater, @wwe, thank you for your replies:

  • I set up web applications usually by downloading the server files, extracting in a directory and then following the official manual. In this case I downloaded the installer and started with that.

  • The basics I read in detail, flying over additional information and for things not working I dive in. Nextcloud works and office did work as well at the time of set up and in the following. I’m not using it daily, main target is reading when needed.

  • I’m old school, I do not use docker.

  • I did search for the problem and read many things about including the integration guide. My problem is a bit I don’t find an entry point to work on since there’s nowhere an error coming up. I read checking the console of the browser and search for network errors. That’s the only thing I have but I can handle server logs, client logs but the Bad Request I don’t see there anywhere.

  • The basic system seems not to be architecture specific at least I didn’t find any different files for the installer/zip-Archive. There’s not much more to say, Arch Linux Arm is the same as Arch Linux except compiled for different architecture, package availability, names, file structure and so on is the same.

  • I went through the checklist of the integration guide:
    :white_check_mark: status.php
    :white_check_mark: hosting/discovery (public hostname, https)
    :white_check_mark: occ app:enable richdocuments - is already enabled
    :white_check_mark: DNS checked and unmodified (public and intranet resolve to different IP but works)
    :white_check_mark: certificate is valid, only one existing and set up in apache (certbot with letsencrypt).
    :white_check_mark: only one name used, matters not from where (as otherwise TLS verification would fail)
    :white_check_mark: no reverse proxy is in use
    :white_check_mark: Nextcluod lies in the webroot (I work with subdomains and separate instances).

  • [root@armserver /srv/nextcloud]# ./occ richdocuments:activate-config
    ✓ Reset callback url autodetect
    Checking configuration
    🛈 Configured WOPI URL: https://cloud.kuropka.eu/apps/richdocumentscode_arm64/proxy.php?req=
    🛈 Configured public WOPI URL: https://cloud.kuropka.eu
    🛈 Configured callback URL:

    ✓ Fetched /hosting/discovery endpoint
    ✓ Valid mimetype response
    ✓ Valid capabilities entry
    ✓ Fetched /hosting/capabilities endpoint
    ✓ Detected WOPI server: Collabora Online Development Edition 25.04.9.4

    Collabora URL (used for Nextcloud to contact the Collabora server):
    https://cloud.kuropka.eu/apps/richdocumentscode_arm64/proxy.php?req=
    Collabora public URL (used in the browser to open Collabora):
    https://cloud.kuropka.eu
    Callback URL (used by Collabora to connect back to Nextcloud):
    autodetected (will use the same URL as your user for browsing Nextcloud)

  • I checked both mentioned GitHub issues, one is about custom webroot, the other about Images used, both do not apply to my case.

  • I just don’t know where to dive in further.

1 Like

I’m not really sure that this is correct. could be that instead of /apps/… a port was needed. pls re-check the manual about this setting.

on the other hand you could try and enable the built-in collabora and see how that one works. I think if it would work you should inspect the setup and handling or your own collabora.

btw: that was a pretty helpful and nice answer! I really appreciate it! :heart_eyes:

Thank you, @JimmyKater. :grinning_face:

The current set up is with the built-in (aka “integrated” in the topic) server and as per admin settings the server does work (I attached a screenshot in the initial post). The vast number of issues and questions show this seems not to be trivial.

I did some further digging:

[root@armserver ~]# netstat -ntlp | grep coolwsd
tcp6       0      0 :::9983                 :::*                    LISTEN      1150/coolwsd

The CODE-server is running but only on IPv6. The domain resolves publicly to IPv4 and IPv6, from intranet only to IPv4. There’s also one instance running:

[root@armserver ~]# ps -A | grep oolwsd
1150 ?        00:00:02 coolwsd

This instance is started upon first time opnening a document. So good so far.

Side note: FUSE is not used despite installed (–appimage-extract-and-run)

http         981  1.5  0.0   5620  3324 ?        S    12:55   0:04 /srv/nextcloud/apps/richdocumentscode_arm64/collabora/Collabora_Online.AppImage --appimage-extract-and-run --o:remote_font_config.url=https://cloud.kuropka.eu/apps/richdocuments/settings/fonts.json --o:net.lok_allow.host[14]=cloud.kuropka.eu --pidfile=/tmp/coolwsd.pid

I further realized that Nextcloud cannot handle the private temp feature of systemd.

[root@armserver ~]# ps aux | grep cool
http        1197  1.6  6.1 761220 496704 ?       S    12:55   0:05 /tmp/appimage_extracted_6e363735df446f68a9ef24a212c228fa/usr/bin/coolforkit-ns --systemplate=/tmp/coolwsd.4svuLy6lrs/systemplate/ --lotemplate=/tmp/appimage_extracted_6e363735df446f68a9ef24a212c228fa/opt/collaboraoffice --childroot=/tmp/coolwsd.4svuLy6lrs/jails/1150-29b26b51/ --clientport=9983 --masterport=coolwsd-KRqGMsIG --rlimits=limit_virt_mem_mb:0;limit_stack_mem_kb:8000;limit_file_size_mb:0;limit_num_open_files:0 --version --nocaps --noseccomp --ui=default --disable-cool-user-checking

The root is not /tmp/ but /tmp/systemd-private-234ac1492baa4326898a6d0768f6dfdb-php-fpm.service-CwnpKZ/. Anyways, it still doesn’t work with pribate temp disabled.

coolwsd.log:

wsd-02129-02155 2026-03-23 13:06:11.354130 +0100 [ websrv_poll ] ERR  #28: WOPI::CheckFileInfo returned0 (Unknown)  for URI [https://cloud.kuropka.eu/index.php/apps/richdocuments/wopi/files/25780_oc1j8oan8tle?access_token=0y9ywTuLB229ejAfJrHobKJFiT7INmQF&access_token_ttl=0]. Headers: 	Body: 
| wsd/wopi/CheckFileInfo.cpp:103
wsd-02129-02155 2026-03-23 13:06:11.354155 +0100 [ websrv_poll ] ERR  #28: Failed or timed-out CheckFileInfo [https://cloud.kuropka.eu/index.php/apps/richdocuments/wopi/files/25780_oc1j8oan8tle?access_token=0y9ywTuLB229ejAfJrHobKJFiT7INmQF&access_token_ttl=0]| wsd/wopi/CheckFileInfo.cpp:117
wsd-02129-02153 2026-03-23 13:06:15.442616 +0100 [ remotefontconfig_poll ] ERR  Remote config server has response status code: 0 (Unknown)| wsd/RemoteConfig.cpp:133
wsd-02129-02157 2026-03-23 13:06:22.608940 +0100 [ docbroker_001 ] ERR  #36: WOPI::CheckFileInfo returned0 (Unknown)  for URI [https://cloud.kuropka.eu/index.php/apps/richdocuments/wopi/files/25780_oc1j8oan8tle?access_token=0y9ywTuLB229ejAfJrHobKJFiT7INmQF&access_token_ttl=0&no_auth_header=]. Headers: 	Body: 
| wsd/wopi/CheckFileInfo.cpp:103
wsd-02129-02157 2026-03-23 13:06:22.608971 +0100 [ docbroker_001 ] ERR  #36: Failed or timed-out CheckFileInfo [https://cloud.kuropka.eu/index.php/apps/richdocuments/wopi/files/25780_oc1j8oan8tle?access_token=0y9ywTuLB229ejAfJrHobKJFiT7INmQF&access_token_ttl=0&no_auth_header=]| wsd/wopi/CheckFileInfo.cpp:117
wsd-02129-02157 2026-03-23 13:06:22.609096 +0100 [ docbroker_001 ] ERR  Failed to add session to [https%3A%2F%2Fcloud.kuropka.eu%3A443%2Findex.php%2Fapps%2Frichdocuments%2Fwopi%2Ffiles%2F25780_oc1j8oan8tle] with URI [https://cloud.kuropka.eu/index.php/apps/richdocuments/wopi/files/25780_oc1j8oan8tle?access_token=0y9ywTuLB229ejAfJrHobKJFiT7INmQF&access_token_ttl=0&no_auth_header=]: CheckFileInfo failed or timed out while adding session #002| wsd/DocumentBroker.cpp:3923
wsd-02129-02157 2026-03-23 13:06:22.609139 +0100 [ docbroker_001 ] ERR  Error while starting session on https%3A%2F%2Fcloud.kuropka.eu%3A443%2Findex.php%2Fapps%2Frichdocuments%2Fwopi%2Ffiles%2F25780_oc1j8oan8tle for socket #31. Terminating connection. Error: CheckFileInfo failed or timed out while adding session #002| wsd/ClientRequestDispatcher.cpp:2546
wsd-02129-02157 2026-03-23 13:06:22.609360 +0100 [ docbroker_001 ] WRN  #22: Unassociated Kit (2152) disconnected unexpectedly| wsd/COOLWSD.cpp:3020
wsd-02129-02157 2026-03-23 13:06:22.609376 +0100 [ docbroker_001 ] WRN  #22: Unknown Kit process closed with pid -1| wsd/COOLWSD.cpp:3031
wsd-02129-02153 2026-03-23 13:06:26.638895 +0100 [ remotefontconfig_poll ] ERR  Remote config server has response status code: 0 (Unknown)| wsd/RemoteConfig.cpp:133

Here I have no clue how to work further…

so the built-in CODE runs on the same machine? maybe you could try a http-connection with an IPaddress then?

but I am only guessing here since I’m not so much into nc-office setups, I’m afraid

this URL looks good for built-in CODE. here Nextcloud ships a “poor man” reverse proxy for CODE..

The check you did are pretty complete and from my understanding CODE itself is operational (which is not always the case on ARM and some distros because of security policies).

I would focus on the “Bad request” - this one is not a network error which happens “somewhere” - this error is actively generated by webserver or reverse proxy in chain.
you mentioned no reverse proxy so start with the webserver - all requests pass here - sometimes you must enable access log first - but this is definitely the place you can see all incoming requests. once you see it you will find out if the error occurs here or later “downstream” within the proxy component or maybe CODE application and depending on the outcome troubleshoot the right component.

another approach would be be to increase the verbosity of the application and review the logs to see of the request arrives in Nextcloud and fails there (Server tuning — Nextcloud latest Administration Manual latest documentation)

on the first glance it might come from your Apache:

  • which means it arrives at the webserver (likely no other reverse proxy)
  • you are using pretty new PHP - double check you have all required modules

CODE hast it’s own logging mechanics and especially with built-in I can’t really help you beside the links I added to the guide - personally I don’t like this beast as it is really picky and very hard to troubleshoot.

2 Likes

Thank you @wwe for pointing me into the right direction.

Searching the net for 400 errors and blank pages brought me to this issue: Opening Documents returns an empty screen and a HTTP 400 error · Issue #115 · CollaboraOnline/richdocumentscode · GitHub . Though the case didn’t apply to mine (the server is directly connected to the internet), adding the domain name to ::1 in the hosts file did fix the issue.

Some checks did not succeed but it seems to work for now… thank you everyone for your assistance!