Cloud Computing Insider Awards 2022: Vote for ONLYOFFICE
Vote for ONLYOFFICE

Running OnlyOffice with Docker-Compose - WOPI - Connection refused while connecting to upstream

Hi,
I have a strange problem with my OnlyOffice setup using Docker-Compose in my dev environment.

I have an application serving a WOPI Host (which for example is working with Collabaora). I want to try to switch to OnlyOffice so I setup a new dev environment with Docker-Compose. I have my app serving the WOPI Host and the OnlyOffice Document server. Config looks like this:

  imixs-documents:
    image: imixs/imixs-documents:latest
    environment:
      WOPI_PUBLIC_ENDPOINT: "localhost:80/"
      WOPI_DISCOVERY_ENDPOINT: "onlyoffice-app:80/hosting/discovery"
      WOPI_HOST_ENDPOINT: "imixs-documents:8080/api/wopi/"
    ports:
      - "8080:8080"

  onlyoffice-app:
    image: onlyoffice/documentserver
    container_name: onlyoffice-app
    expose:
      - 80
    ports:
      - "80:80"
    environment:
      WOPI_ENABLED: "true"

The WOPI integration of OnlyOffice works very fine out of the box. So I can open from my application the office documents with the OnlyOffice documentserver.
So I know that GET FileInfo and GET FileContents is working correctly. But I failed so far to update my documents - POST FileContent is not working (or at least never called by OnlyOffice).

As I am in a Docker-Compose setup I have to deal with the internal and external host names. My application for example uses the internal docker host name to request the WOPI Discovery endpoint (“onlyoffice-app:80/hosting/discovery”) - working fine.
Also Only Office can successful call all the WOPI GET endpoints from my app endpoint via the docker host name (imixs-documents:8080/api/wopi/)

Of course my Browser access the OnlyOffice app via the external host name (localhost:80). I think this is all fine but something is going wrong with the internal communication between the document server and my application.

I can see the following error log message in the document server which my point to the problem (which I did not see so far):

onlyoffice-app     |  * Reloading nginx configuration nginx
onlyoffice-app     |    ...done.
onlyoffice-app     | ==> /var/log/onlyoffice/documentserver/converter/err.log <==
onlyoffice-app     | 
onlyoffice-app     | ==> /var/log/onlyoffice/documentserver/converter/out.log <==
onlyoffice-app     | [2022-07-06T16:40:04.607] [WARN] nodeJS - update cluster with 1 workers
onlyoffice-app     | [2022-07-06T16:41:09.907] [WARN] nodeJS - update cluster with 1 workers
onlyoffice-app     | [2022-07-06T16:41:09.913] [WARN] nodeJS - worker 1086 started.
onlyoffice-app     | [2022-07-06T16:41:09.916] [WARN] nodeJS - update cluster with 1 workers
onlyoffice-app     | [2022-07-06T20:07:15.800] [WARN] nodeJS - update cluster with 1 workers
onlyoffice-app     | [2022-07-06T20:07:15.811] [WARN] nodeJS - worker 976 started.
onlyoffice-app     | [2022-07-06T20:07:15.817] [WARN] nodeJS - update cluster with 1 workers
onlyoffice-app     | [2022-07-06T20:08:09.855] [WARN] nodeJS - update cluster with 1 workers
onlyoffice-app     | [2022-07-06T20:08:09.862] [WARN] nodeJS - worker 1086 started.
onlyoffice-app     | [2022-07-06T20:08:09.866] [WARN] nodeJS - update cluster with 1 workers
onlyoffice-app     | 
onlyoffice-app     | ==> /var/log/onlyoffice/documentserver/docservice/err.log <==
onlyoffice-app     | 
onlyoffice-app     | ==> /var/log/onlyoffice/documentserver/docservice/out.log <==
onlyoffice-app     |     at TCP.onStreamRead (internal/stream_base_commons.js:188:23)
onlyoffice-app     | [2022-07-06T17:04:47.984] [WARN] nodeJS - UpdateVersion expired: docId = imixs-rechnungsvorlage.odt
onlyoffice-app     | [2022-07-06T20:07:16.582] [WARN] nodeJS - Express server starting...
onlyoffice-app     | [2022-07-06T20:07:16.584] [WARN] nodeJS - Set services.CoAuthoring.token.enable.browser, services.CoAuthoring.token.enable.request.inbox, services.CoAuthoring.token.enable.request.outbox in the Document Server config to prevent an unauthorized access to your documents and the substitution of important parameters in ONLYOFFICE Document Server requests.
onlyoffice-app     | [2022-07-06T20:07:16.585] [WARN] nodeJS - Failed to subscribe to plugin folder updates. When changing the list of plugins, you must restart the server. https://nodejs.org/docs/latest/api/fs.html#fs_availability
onlyoffice-app     | [2022-07-06T20:07:16.736] [WARN] nodeJS - Express server listening on port 8000 in production-linux mode. Version: 7.1.1. Build: 23
onlyoffice-app     | [2022-07-06T20:08:08.225] [WARN] nodeJS - Express server starting...
onlyoffice-app     | [2022-07-06T20:08:08.227] [WARN] nodeJS - Set services.CoAuthoring.token.enable.browser, services.CoAuthoring.token.enable.request.inbox, services.CoAuthoring.token.enable.request.outbox in the Document Server config to prevent an unauthorized access to your documents and the substitution of important parameters in ONLYOFFICE Document Server requests.
onlyoffice-app     | [2022-07-06T20:08:08.228] [WARN] nodeJS - Failed to subscribe to plugin folder updates. When changing the list of plugins, you must restart the server. https://nodejs.org/docs/latest/api/fs.html#fs_availability
onlyoffice-app     | [2022-07-06T20:08:08.400] [WARN] nodeJS - Express server listening on port 8000 in production-linux mode. Version: 7.1.1. Build: 23
onlyoffice-app     | 
onlyoffice-app     | ==> /var/log/onlyoffice/documentserver/metrics/err.log <==
onlyoffice-app     | 
onlyoffice-app     | ==> /var/log/onlyoffice/documentserver/metrics/out.log <==
onlyoffice-app     |   counter_rates: {
onlyoffice-app     |     'statsd.bad_lines_seen': 0,
onlyoffice-app     |     'statsd.packets_received': 0,
onlyoffice-app     |     'statsd.metrics_received': 0
onlyoffice-app     |   },
onlyoffice-app     |   sets: {},
onlyoffice-app     |   pctThreshold: [ 90 ]
onlyoffice-app     | }
onlyoffice-app     | 6 Jul 20:07:15 - [932] reading config file: ./config/config.js
onlyoffice-app     | 6 Jul 20:07:15 - server is up INFO
onlyoffice-app     | 
onlyoffice-app     | ==> /var/log/onlyoffice/documentserver/nginx.error.log <==
onlyoffice-app     | 2022/07/05 10:32:27 [error] 967#967: *1 connect() failed (111: Connection refused) while connecting to upstream, client: 192.168.128.4, server: , request: "GET /hosting/discovery HTTP/1.1", upstream: "127.0.0.1:8000/hosting/discovery", host: "onlyoffice-app"
onlyoffice-app     | 2022/07/05 10:32:27 [error] 967#967: *1 connect() failed (111: Connection refused) while connecting to upstream, client: 192.168.128.4, server: , request: "GET /hosting/discovery HTTP/1.1", upstream: "127.0.0.1:8000/hosting/discovery", host: "onlyoffice-app"
onlyoffice-app     | 2022/07/05 10:32:27 [error] 967#967: *4 connect() failed (111: Connection refused) while connecting to upstream, client: 192.168.128.4, server: , request: "GET /hosting/discovery HTTP/1.1", upstream: "127.0.0.1:8000/hosting/discovery", host: "onlyoffice-app"
onlyoffice-app     | 2022/07/05 10:32:27 [error] 967#967: *4 connect() failed (111: Connection refused) while connecting to upstream, client: 192.168.128.4, server: , request: "GET /hosting/discovery HTTP/1.1", upstream: "127.0.0.1:8000/hosting/discovery", host: "onlyoffice-app"
onlyoffice-app     | 2022/07/05 10:32:27 [error] 967#967: *7 connect() failed (111: Connection refused) while connecting to upstream, client: 192.168.128.4, server: , request: "GET /hosting/discovery HTTP/1.1", upstream: "127.0.0.1:8000/hosting/discovery", host: "onlyoffice-app"
onlyoffice-app     | 2022/07/05 10:32:27 [error] 967#967: *7 connect() failed (111: Connection refused) while connecting to upstream, client: 192.168.128.4, server: , request: "GET /hosting/discovery HTTP/1.1", upstream: "127.0.0.1:8000/hosting/discovery", host: "onlyoffice-app"
onlyoffice-app     | 2022/07/05 10:32:28 [error] 967#967: *10 connect() failed (111: Connection refused) while connecting to upstream, client: 192.168.128.4, server: , request: "GET /hosting/discovery HTTP/1.1", upstream: "127.0.0.1:8000/hosting/discovery", host: "onlyoffice-app"
onlyoffice-app     | 2022/07/05 10:32:28 [error] 967#967: *10 connect() failed (111: Connection refused) while connecting to upstream, client: 192.168.128.4, server: , request: "GET /hosting/discovery HTTP/1.1", upstream: "127.0.0.1:8000/hosting/discovery", host: "onlyoffice-app"
onlyoffice-app     | 2022/07/05 10:33:21 [error] 967#967: *14 connect() failed (111: Connection refused) while connecting to upstream, client: 192.168.128.1, server: , request: "POST /hosting/wopi/word/edit?&%3Crs=DC_LLCC&%3E%3Cdchat=DISABLE_CHAT&%3E%3Ce=EMBEDDED&%3E%3Cfs=FULLSCREEN&%3E%3Chid=HOST_SESSION_ID&%3E%3Crec=RECORDING&%3E%3Csc=SESSION_CONTEXT&%3E%3Cthm=THEME_ID&%3E%3Cui=UI_LLCC&%3E%3Cwopisrc=WOPI_SOURCE&%3E&WOPISrc=imixs-documents:8080/api/wopi/35ae501d-ac67-4a1a-99ac-930587800671/files/imixs-rechnungsvorlage.odt HTTP/1.1", upstream: "127.0.0.1:8000/hosting/wopi/word/edit?&%3Crs=DC_LLCC&%3E%3Cdchat=DISABLE_CHAT&%3E%3Ce=EMBEDDED&%3E%3Cfs=FULLSCREEN&%3E%3Chid=HOST_SESSION_ID&%3E%3Crec=RECORDING&%3E%3Csc=SESSION_CONTEXT&%3E%3Cthm=THEME_ID&%3E%3Cui=UI_LLCC&%3E%3Cwopisrc=WOPI_SOURCE&%3E&WOPISrc=imixs-documents:8080/api/wopi/35ae501d-ac67-4a1a-99ac-930587800671/files/imixs-rechnungsvorlage.odt", host: "localhost", referrer: "localhost:8080/"
onlyoffice-app     | 2022/07/05 10:33:21 [error] 967#967: *14 connect() failed (111: Connection refused) while connecting to upstream, client: 192.168.128.1, server: , request: "POST /hosting/wopi/word/edit?&%3Crs=DC_LLCC&%3E%3Cdchat=DISABLE_CHAT&%3E%3Ce=EMBEDDED&%3E%3Cfs=FULLSCREEN&%3E%3Chid=HOST_SESSION_ID&%3E%3Crec=RECORDING&%3E%3Csc=SESSION_CONTEXT&%3E%3Cthm=THEME_ID&%3E%3Cui=UI_LLCC&%3E%3Cwopisrc=WOPI_SOURCE&%3E&WOPISrc=imixs-documents:8080/api/wopi/35ae501d-ac67-4a1a-99ac-930587800671/files/imixs-rechnungsvorlage.odt HTTP/1.1", upstream: "127.0.0.1:8000/hosting/wopi/word/edit?&%3Crs=DC_LLCC&%3E%3Cdchat=DISABLE_CHAT&%3E%3Ce=EMBEDDED&%3E%3Cfs=FULLSCREEN&%3E%3Chid=HOST_SESSION_ID&%3E%3Crec=RECORDING&%3E%3Csc=SESSION_CONTEXT&%3E%3Cthm=THEME_ID&%3E%3Cui=UI_LLCC&%3E%3Cwopisrc=WOPI_SOURCE&%3E&WOPISrc=imixs-documents:8080/api/wopi/35ae501d-ac67-4a1a-99ac-930587800671/files/imixs-rechnungsvorlage.odt", host: "localhost", referrer: "localhost:8080/"

Can someone help me to understand what is going on here?

I think the main problem can be seen in the last line of the log message. The documentserver maybe tries to access my application via localhost:8080/ which is wrong in this docker-compose scenario as the application is only visible via the docker host name imixs-documents:8080

Maybe there is a trick that I can tell the OnlyOffice Document server the internal host name?

Thanks for any help

(because I am a new user I was forced to remove the http : // prfixes as this forum does not allow me to use this more then 2 times in a post)

====
Ralph

Hello @rsoika
Do I understand it right that the issue scenario is the following: open file for editing > type any data > close the file > re-open > no new data persists?
If it’s possible, please reproduce the issue and record a video file. Also please reproduce the issue and take a look at Console\Network tabs in browser console, please make screenshots of any error entries.

Hi @Alexandre ,
I think our WOPI host is working just fine. We can open the OnlyOffice Editor in a iframe and the GET requests for FileInfo and FileContents are send correctly from OnlyOffice to our host. As a result the document is shown correctly:

Peek 2022-07-08 10-29

But what did not happen is the WOPI POST Call back to our wopi Host. I would expect that on each save inside OnlyOffice a POST request is send back to our WOPI Host so that our application can store the data (instead of this OnlyOffice caches the data which is also very simmilar to Collabora).

The problem I see, is the call back POST from OnlyOffice to our App. In the nginx log files of OnlyOffice Document Server I can see this message: (see the full log file above)

onlyoffice-app | 2022/07/05 10:33:21 [error] 967#967: *14 connect() failed (111: Connection refused) while connecting to upstream, client: 192.168.128.1, server: , request: "POST /hosting/wopi/word/edit?&%3Crs=DC_LLCC&%3E%3Cdchat=DISABLE_CHAT&%3E%3Ce=EMBEDDED&%3E%3Cfs=FULLSCREEN&%3E%3Chid=HOST_SESSION_ID&%3E%3Crec=RECORDING&%3E%3Csc=SESSION_CONTEXT&%3E%3Cthm=THEME_ID&%3E%3Cui=UI_LLCC&%3E%3Cwopisrc=WOPI_SOURCE&%3E&WOPISrc=imixs-documents:8080/api/wopi/35ae501d-ac67-4a1a-99ac-930587800671/files/imixs-rechnungsvorlage.odt HTTP/1.1", upstream: "127.0.0.1:8000/hosting/wopi/word/edit?&%3Crs=DC_LLCC&%3E%3Cdchat=DISABLE_CHAT&%3E%3Ce=EMBEDDED&%3E%3Cfs=FULLSCREEN&%3E%3Chid=HOST_SESSION_ID&%3E%3Crec=RECORDING&%3E%3Csc=SESSION_CONTEXT&%3E%3Cthm=THEME_ID&%3E%3Cui=UI_LLCC&%3E%3Cwopisrc=WOPI_SOURCE&%3E&WOPISrc=imixs-documents:8080/api/wopi/35ae501d-ac67-4a1a-99ac-930587800671/files/imixs-rechnungsvorlage.odt", host: "localhost", referrer: "localhost:8080/"

What I expect is a POST request against our application which is in this szeanrio:

POST https://imixs-documents:8080/api/wopi/..../imixs-rechnungsvorlage.odt

But - if I understand the log messages correct - onlyoffice sends a post request to localhost:8080 (which is the referrer host)
Independent form the Docker-Compose dev environment, we plan to setup this in a KubernetesCluster and also in this scenario I would expect, that the POST request from OnlyOffice goes to the internal POD name inside Kubernetes and not via Internet. But how can I tell ONlyOffice this internal host name?

I also checked the network traffic in my browser but there are no errors which seems to be normal to me as this is a backend issue between documentserver and the wopi-host.

I hope this explanation is helpful to you? Or is there something else I could to describe the situation?

I am not absolute sure if my observasion is correct, so I want to be more precise.
I can see, that in case the OnlyOffice editor is closed a POST message is send with the HEADER X-LOOL-WOPI-IsExitSave back to my WOPI Host.

But what I expect is, that a POST message is send each time the document is saved. Why is this not happening?

You have to implement headers to enable forcesave feature and set up the Save button. Please take a look at these titles:
https://api.onlyoffice.com/editors/faq/saving
https://api.onlyoffice.com/editors/wopi/restapi/putfile

It looks like you need these headers:
headers[‘X-LOOL-WOPI-IsModifiedByUser’] = isModifiedByUser;
headers[‘X-LOOL-WOPI-IsAutosave’] = isAutosave;
headers[‘X-LOOL-WOPI-IsExitSave’] = isExitSave;

Ah! Thanks! This sounds promising. I will try this out…

1 Like

@Alexandre I try to figure out how set the correct parameter and I wonder if I can use the WOPI PostMessage for this?
After I receifed the App_LoadingStatus during loading the document, I tried to send the request like this:

iframe.postMessage(JSON.stringify({"c": "forcesave","key": "Khirz6zTPdfd7","userdata": "sample userdata"}), '*');

But this did no work.
Also I tried to update the default.json in my docker container by providing a customized version with

		"autoAssembly": {
			"enable": true,
			"interval": "1m",
			"step": "1m"
		},

But this also does not have any effect.
From the description of this page it seems that setting forceSave should have effect, that I got the WOPI Post Request each time the user press the save button inside onlyOffice. But until now it did not work for me.

Can you give me a short example how to use the Command service to tell OnlyOffice to change its behaviour?

Hi @Alexandre,
I think I solved the problem more or less by changing the default.json file configuration with the following setting:

			"autoAssembly": {
				"enable": true,
				"interval": "0m",
				"step": "0m"
			},

So I set both parameters to “0m”. The “step” parameter seems not to be documented - at least I did not found any information about it, but I think it should also be set to 0m too.

At least I did not understand why I should wait 1 or 5 minutes until my WOPI host receive the fresh document from the OnlyOffice documentServer.

I will try to explain the situation: We are developing an open source workflow suite (https://github.com/imixs/imixs-office-workflow). Users can create or process a process instance and can add any kind of information to it.
With the integration of OnlyOffice we want to offer our customers a way to edit documents via OnlyOffice. But from our Worklfow-perspective, the user can edit any kind of form data, add documents or at least edit existing documents with OnlyOffice.
When the user triggers the Workflow Action (e.g. save, approve, reject) we store all information including the documents into the workflow storage. The timestamp is an important data here. We generate a protocol over all data this user has added/changed. After a process step it may be that the workflow instance and all its data is now locked (e.g. archived) and it is not allowed any more to change it.

And for this reason I need the updated version from OnlyOffice immediately after the user clicks in OnlyOffice on the save button. Processing information depends on business rules within our BPMN process model and this is far outside of logic of the documentStorage from OnlyOffice.

I think from the perspective of OwnCloud or NextCloud the situation is much more easy and your idea to wait a little bit until all users have finished editing is fine. But in your workflow scenario it is not possible to change the document after the user has finished his task.

See the screen cast below for better understanding the situation:

Peek 2022-07-08 19-16

iframe.postMessage(JSON.stringify({“c”: “forcesave”,“key”: “Khirz6zTPdfd7”,“userdata”: “sample userdata”}), ‘*’);

It looks correct. Could you please reproduce the issue and provide us with whole Document server logs folder?

As for autoAssembly parameter. It is not needed in your scenario (Save button). This parameter is related to timely auto save process.

Hi @Alexandre

I added a javascript to post the message:

function setOnlyOfficeForcesave() {
	
	console.log('setOnlyOfficeForcesave.....');
	var iframe = document.getElementById('wopi-iframe');
	iframe = iframe.contentWindow || (iframe.contentDocument.document || iframe.contentDocument);
	if (iframe) {
		console.log('post message...');
		iframe.postMessage(JSON.stringify({"c": "forcesave","key": "Khirz6zTPdfd7","userdata": "sample userdata"}), "*");
		console.log('post message completed!');
	} else {
		console.log('iframe not found!');
	}
}

The postMessage is executed without errors but I did not see any changes in behaviour.
I created a tar file from my documentserver logs. How can I provide you this file? I can not upload the file into this forum (?).

===
Ralph

You can download the logs from our server:
https://manik.imixs.org/documentserver_20220711.tar.gz
Please let me know if you got them so I can remove the tar file.

Thank you for the logs. We got it. We need some time to check it out.

We noticed an oddity in provided logs:

[2022-07-11T16:22:59.282] [ERROR] nodeJS - dnsLookup error: hostname = imixs-documents
Error: getaddrinfo ENOTFOUND imixs-documents
    at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:69:26)

It looks like DS doesn’t know where the storage app is.
We have checked your compose file from first post:

imixs-documents:
    image: imixs/imixs-documents:latest
    environment:
      WOPI_PUBLIC_ENDPOINT: "localhost:80/"
      WOPI_DISCOVERY_ENDPOINT: "onlyoffice-app:80/hosting/discovery"
      WOPI_HOST_ENDPOINT: "imixs-documents:8080/api/wopi/"
    ports:
      - "8080:8080"

  onlyoffice-app:
    image: onlyoffice/documentserver
    container_name: onlyoffice-app
    expose:
      - 80
    ports:
      - "80:80"
    environment:
      WOPI_ENABLED: "true"

Probably you need to specify container name as you did it for DS:
container_name: imixs-documents
Or you need to resolve the situation in /etc/hosts file of DS container. Anyway this error looks like DNS issue.

Yes, I also have the impression that resolving the host names goes totally wrong. The supprising thing is, that OnlyOffice is of course able to call the checkFileInfo WOPI Call against "imixs-documents:8080/ and also fetch the file. This is expected in a docker-compose situation. But the nginx sever seems to try to resolve localhost:8080 which is the referer host when you have the perspective from the web application.
And this is the reason why I am missing a parameter to tell OnlyOffice (or the documentserver) the correct internal host name of my WOPI Host. Of course both docker containers can communicate with each other. And: everything is working with this development setup !? - very strange.

To describe the problem from a more broad perspective: I plan to setup the complete solution for our customers in Kubernetes. And also in this environment I expect that the document sever uses the internal POD host names provided by the internal Kubernetes network and not communicate via the official Internet DNS name. I expect the issue will be gone if I setup the connection via internet domains. But is it, what you expect/recommand? For the Web part with javascript in the browser I understand this. But for communication between documentserver and WOPI Host should it not be better to avoid going outside for security reason?

Maybe you can provide some architecture pictures to explain your ideal setup. This is also a interesting question, when my customer what to buy your Enterprise Solution. How should the setup look like in various scenarios?

Sorry, but I must come back to the forcesave flag issue.

What would you expect if I call the following script from the parent window:

iframe.postMessage(JSON.stringify({"c": "forcesave","key": "Khirz6zTPdfd7","userdata": "sample userdata"}), "*");
		

How can I verify what happend on the server or if the command was successfull or not. I absolutily did not understand how to verifiy this.
Please be aware that I am running wopi_enabled=true mode

How can I verify what happend on the server or if the command was successfull or not.

You can check DEBUG logs on the Document server side to check it out. There will be PutFile request in the logs.
How to enable DEBUG logs:

  1. Open /etc/onlyoffice/documentserver/log4js/production.json (for Docker - all actions performed inside the container);

  2. Change “level”: “WARN” to “level”: “DEBUG

  3. Execute supervisorctl restart all to apply the changes

And also in this environment I expect that the document sever uses the internal POD host names provided by the internal Kubernetes network and not communicate via the official Internet DNS name

Here’s the official guide for Kubernetes:

Please note that we are still testing WOPI for K8s. We are going to add it as variable for pods in the next Helm Docs update.

Hi @Alexandre , I can activate the DEBUG mode. This works fine and I can see now many debug messages.
But my PostMessage did not work and also did not generate any additional debug message.

I analysed the situation in more detail. And maybe we are talking about different things.
Remember, I am in the WOPI Situation, which means my web application generates an iframe element to load the OnlyOffice editor based on the WOPI Discovery URL result. This works fine.
My iframe contains a document with again an iframe containing the OnlyOffice app.

Don’t you think, that my postMessage is going to the WOPI API and not to the command service?
This is the script I am using out from my web app to post the message:

function setOnlyOfficeForcesave() {
	
	console.log('setOnlyOfficeForcesave.....');
	var iframe = document.getElementById('wopi-iframe');
	iframe = iframe.contentWindow || (iframe.contentDocument.document || iframe.contentDocument);
	if (iframe) {
		console.log('post message to localhost...');
		//var result=iframe.postMessage(JSON.stringify({"c": "forcesave","key": "Khirz6zTPdfd7","userdata": "true"}), "*");
		var result=iframe.postMessage(JSON.stringify({"c": "forcesave","key": "Khirz6zTPdfd7","userdata": "imixs-workflow"}), "http://localhost:80/coauthoring/CommandService.ashx");
		console.log('post message completed! result='+result);
	} else {
		console.log('iframe not found!');
	}
}

No errors, but I did not get a result (undefined) and I can’t see anything in the debug log.

Do you expect that in case of a WOPI integration it should be possible to post normal OnlyOffice Command Service in parallel to the WOP PostMessage commands? Even if they have different formats?

https://api.onlyoffice.com/editors/command/

https://api.onlyoffice.com/editors/wopi/postmessage

What I mean is that I fear my JavaScript function has the wrong implementation for that what we want to achieve - setting the forceSave flag?

Could you please reproduce the situation and send us debug logs? You can contact me in PM

Hi @Alexandre, you will find the new logfiles here:
https://manik.imixs.org/documentserver_20220715.tar.gz

Thank you for the logs, we are checking the situation.