Unable to load documents

I have a problem loading documents into collabora.

I am running the image collabora/code:latest. The server is starting and I can access the discovery.xml and the admin panel

I also implemented a WOPI Host providing the following rest service endpoints:

GET http://localhost:8080/api/wopi/files/{ID}/contents?access_token={token}
POST http://localhost:8080/api/wopi/files/{ID}/contents?access_token={token}

GET http://localhost:8080/api/wopi/files/{ID}?access_token={token}

The checkfileinfo endpoint returns a JSON like this one:

{
	"BaseFileName": "test.odt",
	"Size": 8186,
	"OwnerId": "admin",
	"UserId": "admin",
	"Version": 1620310335173,
	"Sha256": "28eb6bf688561f2a5236d973e5d3348d3b77a31d9e5a9f249b4565796f0afa87",
	"AllowExternalMarketplace": true,
	"UserCanWrite": true,
	"SupportsUpdate": true,
	"SupportsLocks": true
}

When I try to open a document I use the following URL for a quick test:

https://localhost:9980/loleaflet/1430151/loleaflet.html?WOPISrc=http://my-wopi-service:8080/api/wopi/files/test.odt/contents?access_token=12345

The server prints the following Error message:

libreoffice-app    | wsd-00007-00084 2021-05-07 13:08:20.555154 [ docbroker_005 ] ERR  loading document exception: JSON Exception| wsd/DocumentBroker.cpp:1445
libreoffice-app    | wsd-00007-00084 2021-05-07 13:08:20.555202 [ docbroker_005 ] ERR  Failed to add session to [/api/wopi/files/123/contents] with URI [http://imixs-app:8080/api/wopi/files/123/contents?access_token=55757]: JSON Exception| wsd/DocumentBroker.cpp:1407
libreoffice-app    | wsd-00007-00084 2021-05-07 13:08:20.555228 [ docbroker_005 ] ERR  Error while loading : JSON Exception| wsd/LOOLWSD.cpp:3465
libreoffice-app    | wsd-00007-00084 2021-05-07 13:08:20.754073 [ docbroker_005 ] ERR  No DocBroker found, or DocBroker marked to be destroyed. Terminating session ToClient-093| wsd/ClientSession.cpp:332
libreoffice-app    | wsd-00007-00084 2021-05-07 13:08:20.754143 [ docbroker_005 ] ERR  No DocBroker found, or DocBroker marked to be destroyed. Terminating session ToClient-093| wsd/ClientSession.cpp:332
libreoffice-app    | wsd-00007-00084 2021-05-07 13:08:22.555892 [ docbroker_005 ] ERR  Invalid or unknown session [093] to remove.| wsd/DocumentBroker.cpp:1484
libreoffice-app    | wsd-00007-00084 2021-05-07 13:08:22.555978 [ docbroker_005 ] ERR  No socket associated with WebSocketHandler 0x7fd0a80103f0| ./net/WebSocketHandler.hpp:125
libreoffice-app    | sh: 1: /usr/bin/loolmount: Operation not permitted
libreoffice-app    | frk-00046-00046 2021-05-07 13:08:23.592735 [ forkit ] ERR  Failed to unmount [/opt/lool/child-roots/O2Y2xoU0BPNkfjWg/tmp].| common/JailUtil.cpp:68
libreoffice-app    | sh: 1: /usr/bin/loolmount: Operation not permitted
libreoffice-app    | frk-00046-00046 2021-05-07 13:08:23.616268 [ forkit ] ERR  Failed to unmount [/opt/lool/child-roots/O2Y2xoU0BPNkfjWg/lo].| common/JailUtil.cpp:68
libreoffice-app    | sh: 1: /usr/bin/loolmount: Operation not permitted
libreoffice-app    | frk-00046-00046 2021-05-07 13:08:23.636701 [ forkit ] ERR  Failed to unmount [/opt/lool/child-roots/O2Y2xoU0BPNkfjWg].| common/JailUtil.cpp:68
libreoffice-app    | wsd-00007-00045 2021-05-07 13:08:25.982300 [ prisoner_poll ] WRN  Prisoner connection disconnected but without valid socket.| wsd/LOOLWSD.cpp:2130

The browser window looks like this:

I can not figure out what’s is wrong in my implementation. Can someone give me a hint?

===
Ralph

1 Like

I am also getting the same issue. Did you get any solution? @rsoika

Yes I think the important parts are:

  1. Set the environment variable ‘domain’
    You need to set the env var ‘domain’ of your collaboara server to all domains your server is used from .
    You can use regex here. For example I am using:

domain=(\.foo\.com|\.another-foo\.de)

  1. Tweak the loolwsd.xml
    in the loolwsd.xml file you need to set the frame_ancestors also to all domains. But this is a value used for HTTP Header and you can NOT use regex. For example I am using

<frame_ancestors>*.foo.com *.another-foo.de</frame_ancestors>

  1. The storage settings
    again in the loolwsd.xml file you need to set the allowed hosts. Here I am using:
    <storage desc="Backend storage">
        <filesystem allow="false" />
        <wopi allow="true">            
            <host allow="true">demo1.foo.com</host>
            <host allow="true">demo2.another-foo.de</host>
   ...

I think it takes me several days to figure this out. If you are not using Owncloud/Nextcloud you are a little bit lost with this kind of stuff :wink: