# ServerException Server error: \`POST \[...\] /cool/convert-to/png\` resulted in a \`502 Bad Gateway\` response: error code: 502

**URL:** <https://forum.collaboraonline.com/t/serverexception-server-error-post-cool-convert-to-png-resulted-in-a-502-bad-gateway-response-error-code-502/4158>\
**Category:** Installation & Configuration\
**Created:** [November 17, 2025, 8:46am UTC](https://forum.collaboraonline.com/t/serverexception-server-error-post-cool-convert-to-png-resulted-in-a-502-bad-gateway-response-error-code-502/4158 "2025-11-17T08:46:45Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![esxpfe](https://avatars.discourse-cdn.com/v4/letter/e/e19adc/32.png) [@esxpfe](https://forum.collaboraonline.com/u/esxpfe)\
**Post date:** [November 17, 2025, 8:46am UTC](https://forum.collaboraonline.com/t/serverexception-server-error-post-cool-convert-to-png-resulted-in-a-502-bad-gateway-response-error-code-502/4158/1 "2025-11-17T08:46:45Z")

</div>

Nextcloud log has many entries like this:

```auto
[richdocuments] Error: Failed to convert preview: Server error: `POST https://<REDACTED_DOMAIN>/cool/convert-to/png` resulted in a `502 Bad Gateway` response:
error code: 502

	GET /core/preview?fileId=442190&x=32&y=32&mimeFallback=true&v=ac4028&a=0
	from REDACTED_IP by REDACTED_USER at 17 Nov 2025, 2:25:44 pm

```

Document server is otherwise working fine with documents, etc.

Also seems similar to this, but thread was closed: [Nextcloud + Collabora OK but image preview of filetype send errors](https://forum.collaboraonline.com/t/nextcloud-collabora-ok-but-image-preview-of-filetype-send-errors/3673)

Also ref to this issue rasied in Nextcloud forums November 2024: [Numerous logging entries from richdocumentscode NC30.0.1 - ℹ️ Support - Nextcloud community](https://help.nextcloud.com/t/numerous-logging-entries-from-richdocumentscode-nc30-0-1/208735/1)

In my case, I’m **not** using Docker.

---

<div class="post-metadata">

**Author:** ![darshan](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.collaboraonline.com/darshan/32/2230_2.png) [@darshan](https://forum.collaboraonline.com/u/darshan)\
**Post date:** [November 18, 2025, 6:26am UTC](https://forum.collaboraonline.com/t/serverexception-server-error-post-cool-convert-to-png-resulted-in-a-502-bad-gateway-response-error-code-502/4158/2 "2025-11-18T06:26:56Z")

</div>

Your Nextcloud is asking Collabora to generate previews using:

`POST /cool/convert-to/png`

Most common causes:

1. **Reverse-proxy timeout** (nginx/Apache/Traefik) — increase proxy timeouts.
2. **Collabora conversion worker crash / bug** — check `journalctl -u loolwsd` for errors.
3. **Collabora can’t spawn LibreOffice for preview** (OOM or missing libs).
4. **Misconfigured proxy path** — double-check `/cool` upstream config.

Quick tests:

```bash
curl https://your-domain/hosting/discovery
curl -F "file=@test.docx" https://your-domain/cool/convert-to/png
journalctl -u loolwsd -n 100

```

If you send me **5–10 lines of coolwsd logs around a failing preview** and **your proxy config** , I can tell you the exact cause.

Thanks  
Darshan

---

<div class="post-metadata">

**Author:** ![esxpfe](https://avatars.discourse-cdn.com/v4/letter/e/e19adc/32.png) [@esxpfe](https://forum.collaboraonline.com/u/esxpfe)\
**Post date:** [November 21, 2025, 12:48pm UTC](https://forum.collaboraonline.com/t/serverexception-server-error-post-cool-convert-to-png-resulted-in-a-502-bad-gateway-response-error-code-502/4158/3 "2025-11-21T12:48:20Z")

</div>

Hi Darshan,

Thanks for getting back.

So for quick tests:

`curl https://REDACTED/hosting/discovery`

Rightly returns a bunch of `<wopi-discovery>` XML as expected.

The next showed some warnings, but otherwise nothing on stdout:

```auto
$ curl -F "file=@test.odt" https://REDACTED/cool/convert-to/png
Warning: Binary output can mess up your terminal. Use "--output -" to tell 
Warning: curl to output it to your terminal anyway, or consider "--output 
Warning: <FILE>" to save to a file.

```

Then from journal:

```auto
$ journalctl -u coolwsd -n 100
Nov 21 14:27:49 REDACTED coolwsd[1915128]: kit-1915128-1915128 2025-11-21 14:27:49.122490 +1100 [kitbroker_001] WRN #20: Background save process disconnected but not terminated 1928390| kit/KitWebSocket.cpp:352
Nov 21 14:27:49 REDACTED coolwsd[1915128]: kit-1915128-1915128 2025-11-21 14:27:49.122563 +1100 [kitbroker_001] WRN #20: Socket still open post onDisconnect(), forced shutdown.| net/Socket.hpp:1283
Nov 21 14:28:06 REDACTED coolwsd[1820566]: wsd-1820566-1915134 2025-11-21 14:28:06.670111 +1100 [docbroker_001] WRN Client session [188] not found to forward message: o16036 unloaded: viewid=6 views=2| wsd/DocumentBroker.cpp:5278
Nov 21 14:32:14 REDACTED coolwsd[1915128]: kit-1915128-1915128 2025-11-21 14:32:14.617492 +1100 [kitbroker_001] WRN #21: Socket still open post onDisconnect(), forced shutdown.| net/Socket.hpp:1283
Nov 21 14:32:14 REDACTED coolwsd[1929381]: kit-1915128-1929381 2025-11-21 14:32:14.618642 +1100 [kitbgsv_006_00b] WRN #20: Socket still open post onDisconnect(), forced shutdown.| net/Socket.hpp:1283
Nov 21 14:32:15 REDACTED coolwsd[1915128]: kit-1915128-1915128 2025-11-21 14:32:15.939859 +1100 [kitbroker_001] WRN #20: Background save process disconnected but not terminated 1929381| kit/KitWebSocket.cpp:352
Nov 21 14:32:15 REDACTED coolwsd[1915128]: kit-1915128-1915128 2025-11-21 14:32:15.940789 +1100 [kitbroker_001] WRN #20: Socket still open post onDisconnect(), forced shutdown.| net/Socket.hpp:1283
Nov 21 14:34:51 REDACTED coolwsd[1915128]: kit-1915128-1915128 2025-11-21 14:34:51.366289 +1100 [kitbroker_001] WRN #21: Socket still open post onDisconnect(), forced shutdown.| net/Socket.hpp:1283
Nov 21 14:34:51 REDACTED coolwsd[1929830]: kit-1915128-1929830 2025-11-21 14:34:51.367461 +1100 [kitbgsv_006_00c] WRN #20: Socket still open post onDisconnect(), forced shutdown.| net/Socket.hpp:1283
Nov 21 14:34:52 REDACTED coolwsd[1915128]: kit-1915128-1915128 2025-11-21 14:34:52.693120 +1100 [kitbroker_001] WRN #20: Background save process disconnected but not terminated 1929830| kit/KitWebSocket.cpp:352
Nov 21 14:34:52 REDACTED coolwsd[1915128]: kit-1915128-1915128 2025-11-21 14:34:52.693152 +1100 [kitbroker_001] WRN #20: Socket still open post onDisconnect(), forced shutdown.| net/Socket.hpp:1283
Nov 21 14:41:22 REDACTED coolwsd[1820566]: wsd-1820566-1915134 2025-11-21 14:41:22.143915 +1100 [docbroker_001] WRN Client session [078] not found to forward message: o20585 unloaded: viewid=4 views=2| wsd/DocumentBroker.cpp:5278
Nov 21 14:43:26 REDACTED coolwsd[1820566]: wsd-1820566-1915134 2025-11-21 14:43:26.014148 +1100 [docbroker_001] WRN Client session [187] not found to forward message: o20595 unloaded: viewid=5 views=1| wsd/DocumentBroker.cpp:5278
Nov 21 14:49:07 REDACTED coolwsd[1915128]: kit-1915128-1915128 2025-11-21 14:49:07.160961 +1100 [kitbroker_001] WRN #21: Socket still open post onDisconnect(), forced shutdown.| net/Socket.hpp:1283
Nov 21 14:49:07 REDACTED coolwsd[1932719]: kit-1915128-1932719 2025-11-21 14:49:07.162127 +1100 [kitbgsv_006_00d] WRN #20: Socket still open post onDisconnect(), forced shutdown.| net/Socket.hpp:1283
Nov 21 14:49:08 REDACTED coolwsd[1915128]: kit-1915128-1915128 2025-11-21 14:49:08.485833 +1100 [kitbroker_001] WRN #20: Background save process disconnected but not terminated 1932719| kit/KitWebSocket.cpp:352
Nov 21 14:49:08 REDACTED coolwsd[1915128]: kit-1915128-1915128 2025-11-21 14:49:08.486665 +1100 [kitbroker_001] WRN #20: Socket still open post onDisconnect(), forced shutdown.| net/Socket.hpp:1283
Nov 21 14:49:12 REDACTED coolwsd[1915128]: kit-1915128-1915128 2025-11-21 14:49:12.868426 +1100 [kitbroker_001] WRN #21: Socket still open post onDisconnect(), forced shutdown.| net/Socket.hpp:1283
Nov 21 14:49:12 REDACTED coolwsd[1932785]: kit-1915128-1932785 2025-11-21 14:49:12.869852 +1100 [kitbgsv_006_00e] WRN #20: Socket still open post onDisconnect(), forced shutdown.| net/Socket.hpp:1283
Nov 21 14:49:14 REDACTED coolwsd[1915128]: kit-1915128-1915128 2025-11-21 14:49:14.166835 +1100 [kitbroker_001] WRN #20: Background save process disconnected but not terminated 1932785| kit/KitWebSocket.cpp:352
Nov 21 14:49:14 REDACTED coolwsd[1915128]: kit-1915128-1915128 2025-11-21 14:49:14.166835 +1100 [kitbroker_001] WRN #20: Socket still open post onDisconnect(), forced shutdown.| net/Socket.hpp:1283
Nov 21 14:56:15 REDACTED coolwsd[1916558]: kit-1916558-1916558 2025-11-21 14:56:15.395475 +1100 [kitbroker_009] WRN #20: Socket still open post onDisconnect(), forced shutdown.| net/Socket.hpp:1283
Nov 21 14:56:15 REDACTED coolwsd[1934160]: kit-1916558-1934160 2025-11-21 14:56:15.396722 +1100 [kitbgsv_00d_001] WRN #19: Socket still open post onDisconnect(), forced shutdown.| net/Socket.hpp:1283
Nov 21 14:56:16 REDACTED coolwsd[1916558]: kit-1916558-1916558 2025-11-21 14:56:16.618652 +1100 [kitbroker_009] WRN #19: Background save process disconnected but not terminated 1934160| kit/KitWebSocket.cpp:352
Nov 21 14:56:16 REDACTED coolwsd[1916558]: kit-1916558-1916558 2025-11-21 14:56:16.619805 +1100 [kitbroker_009] WRN #19: Socket still open post onDisconnect(), forced shutdown.| net/Socket.hpp:1283
Nov 21 15:01:27 REDACTED coolwsd[1916558]: kit-1916558-1916558 2025-11-21 15:01:27.466052 +1100 [kitbroker_009] WRN #20: Socket still open post onDisconnect(), forced shutdown.| net/Socket.hpp:1283
Nov 21 15:01:27 REDACTED coolwsd[1935197]: kit-1916558-1935197 2025-11-21 15:01:27.468707 +1100 [kitbgsv_00d_002] WRN #19: Socket still open post onDisconnect(), forced shutdown.| net/Socket.hpp:1283
Nov 21 15:01:28 REDACTED coolwsd[1916558]: kit-1916558-1916558 2025-11-21 15:01:28.758790 +1100 [kitbroker_009] WRN #19: Background save process disconnected but not terminated 1935197| kit/KitWebSocket.cpp:352
Nov 21 15:01:28 REDACTED coolwsd[1916558]: kit-1916558-1916558 2025-11-21 15:01:28.758897 +1100 [kitbroker_009] WRN #19: Socket still open post onDisconnect(), forced shutdown.| net/Socket.hpp:1283
Nov 21 15:04:42 REDACTED coolwsd[1916558]: kit-1916558-1916558 2025-11-21 15:04:42.571382 +1100 [kitbroker_009] WRN #21: Socket still open post onDisconnect(), forced shutdown.| net/Socket.hpp:1283
Nov 21 15:04:42 REDACTED coolwsd[1935760]: kit-1916558-1935760 2025-11-21 15:04:42.572563 +1100 [kitbgsv_00d_003] WRN #20: Socket still open post onDisconnect(), forced shutdown.| net/Socket.hpp:1283
Nov 21 15:04:43 REDACTED coolwsd[1916558]: kit-1916558-1916558 2025-11-21 15:04:43.927169 +1100 [kitbroker_009] WRN #20: Background save process disconnected but not terminated 1935760| kit/KitWebSocket.cpp:352
Nov 21 15:04:43 REDACTED coolwsd[1916558]: kit-1916558-1916558 2025-11-21 15:04:43.928102 +1100 [kitbroker_009] WRN #20: Socket still open post onDisconnect(), forced shutdown.| net/Socket.hpp:1283
Nov 21 15:16:01 REDACTED coolwsd[1916558]: kit-1916558-1916558 2025-11-21 15:16:01.932612 +1100 [kitbroker_009] WRN #21: Socket still open post onDisconnect(), forced shutdown.| net/Socket.hpp:1283
Nov 21 15:16:01 REDACTED coolwsd[1937901]: kit-1916558-1937901 2025-11-21 15:16:01.934131 +1100 [kitbgsv_00d_004] WRN #20: Socket still open post onDisconnect(), forced shutdown.| net/Socket.hpp:1283
Nov 21 15:16:03 REDACTED coolwsd[1916558]: kit-1916558-1916558 2025-11-21 15:16:03.551962 +1100 [kitbroker_009] WRN #20: Background save process disconnected but not terminated 1937901| kit/KitWebSocket.cpp:352
Nov 21 15:16:03 REDACTED coolwsd[1916558]: kit-1916558-1916558 2025-11-21 15:16:03.552001 +1100 [kitbroker_009] WRN #20: Socket still open post onDisconnect(), forced shutdown.| net/Socket.hpp:1283
Nov 21 15:17:19 REDACTED coolwsd[1916558]: kit-1916558-1916558 2025-11-21 15:17:19.050309 +1100 [kitbroker_009] WRN #21: Socket still open post onDisconnect(), forced shutdown.| net/Socket.hpp:1283
Nov 21 15:17:19 REDACTED coolwsd[1938210]: kit-1916558-1938210 2025-11-21 15:17:19.051547 +1100 [kitbgsv_00d_005] WRN #20: Socket still open post onDisconnect(), forced shutdown.| net/Socket.hpp:1283
Nov 21 15:17:20 REDACTED coolwsd[1916558]: kit-1916558-1916558 2025-11-21 15:17:20.403881 +1100 [kitbroker_009] WRN #20: Background save process disconnected but not terminated 1938210| kit/KitWebSocket.cpp:352
Nov 21 15:17:20 REDACTED coolwsd[1916558]: kit-1916558-1916558 2025-11-21 15:17:20.404691 +1100 [kitbroker_009] WRN #20: Socket still open post onDisconnect(), forced shutdown.| net/Socket.hpp:1283
Nov 21 15:25:51 REDACTED coolwsd[1916558]: kit-1916558-1916558 2025-11-21 15:25:51.736081 +1100 [kitbroker_009] WRN #21: Socket still open post onDisconnect(), forced shutdown.| net/Socket.hpp:1283
Nov 21 15:25:51 REDACTED coolwsd[1939769]: kit-1916558-1939769 2025-11-21 15:25:51.737020 +1100 [kitbgsv_00d_006] WRN #20: Socket still open post onDisconnect(), forced shutdown.| net/Socket.hpp:1283
Nov 21 15:25:53 REDACTED coolwsd[1916558]: kit-1916558-1916558 2025-11-21 15:25:53.119184 +1100 [kitbroker_009] WRN #20: Background save process disconnected but not terminated 1939769| kit/KitWebSocket.cpp:352
Nov 21 15:25:53 REDACTED coolwsd[1916558]: kit-1916558-1916558 2025-11-21 15:25:53.120145 +1100 [kitbroker_009] WRN #20: Socket still open post onDisconnect(), forced shutdown.| net/Socket.hpp:1283
Nov 21 15:29:01 REDACTED coolwsd[1916558]: kit-1916558-1916558 2025-11-21 15:29:01.340170 +1100 [kitbroker_009] WRN #21: Socket still open post onDisconnect(), forced shutdown.| net/Socket.hpp:1283
Nov 21 15:29:01 REDACTED coolwsd[1940329]: kit-1916558-1940329 2025-11-21 15:29:01.341720 +1100 [kitbgsv_00d_007] WRN #20: Socket still open post onDisconnect(), forced shutdown.| net/Socket.hpp:1283
Nov 21 15:29:03 REDACTED coolwsd[1916558]: kit-1916558-1916558 2025-11-21 15:29:03.289105 +1100 [kitbroker_009] WRN #20: Background save process disconnected but not terminated 1940329| kit/KitWebSocket.cpp:352
Nov 21 15:29:03 REDACTED coolwsd[1916558]: kit-1916558-1916558 2025-11-21 15:29:03.289143 +1100 [kitbroker_009] WRN #20: Socket still open post onDisconnect(), forced shutdown.| net/Socket.hpp:1283
Nov 21 15:29:48 REDACTED coolwsd[1916558]: kit-1916558-1916558 2025-11-21 15:29:48.953619 +1100 [kitbroker_009] WRN Unusual extremely large tile combine of size 4352x512 (17x2 tiles to serve 4 tiles: 11% in 8.5MB| common/RenderTiles.hpp:115
Nov 21 15:30:25 REDACTED coolwsd[1916558]: kit-1916558-1916558 2025-11-21 15:30:25.451903 +1100 [kitbroker_009] WRN #21: Socket still open post onDisconnect(), forced shutdown.| net/Socket.hpp:1283
Nov 21 15:30:25 REDACTED coolwsd[1940681]: kit-1916558-1940681 2025-11-21 15:30:25.453999 +1100 [kitbgsv_00d_008] WRN #20: Socket still open post onDisconnect(), forced shutdown.| net/Socket.hpp:1283
Nov 21 15:30:26 REDACTED coolwsd[1916558]: kit-1916558-1916558 2025-11-21 15:30:26.929559 +1100 [kitbroker_009] WRN #20: Background save process disconnected but not terminated 1940681| kit/KitWebSocket.cpp:352
Nov 21 15:30:26 REDACTED coolwsd[1916558]: kit-1916558-1916558 2025-11-21 15:30:26.929621 +1100 [kitbroker_009] WRN #20: Socket still open post onDisconnect(), forced shutdown.| net/Socket.hpp:1283
Nov 21 15:35:56 REDACTED coolwsd[1916558]: kit-1916558-1916558 2025-11-21 15:35:56.616203 +1100 [kitbroker_009] WRN #21: Socket still open post onDisconnect(), forced shutdown.| net/Socket.hpp:1283
Nov 21 15:35:56 REDACTED coolwsd[1941629]: kit-1916558-1941629 2025-11-21 15:35:56.617221 +1100 [kitbgsv_00d_009] WRN #20: Socket still open post onDisconnect(), forced shutdown.| net/Socket.hpp:1283
Nov 21 15:35:57 REDACTED coolwsd[1916558]: kit-1916558-1916558 2025-11-21 15:35:57.912829 +1100 [kitbroker_009] WRN #20: Background save process disconnected but not terminated 1941629| kit/KitWebSocket.cpp:352
Nov 21 15:35:57 REDACTED coolwsd[1916558]: kit-1916558-1916558 2025-11-21 15:35:57.912864 +1100 [kitbroker_009] WRN #20: Socket still open post onDisconnect(), forced shutdown.| net/Socket.hpp:1283
Nov 21 15:40:43 REDACTED coolwsd[1916558]: kit-1916558-1916558 2025-11-21 15:40:43.514973 +1100 [kitbroker_009] WRN #21: Socket still open post onDisconnect(), forced shutdown.| net/Socket.hpp:1283
Nov 21 15:40:43 REDACTED coolwsd[1942662]: kit-1916558-1942662 2025-11-21 15:40:43.516123 +1100 [kitbgsv_00d_00a] WRN #20: Socket still open post onDisconnect(), forced shutdown.| net/Socket.hpp:1283
Nov 21 15:40:44 REDACTED coolwsd[1916558]: kit-1916558-1916558 2025-11-21 15:40:44.644221 +1100 [kitbroker_009] WRN #20: Background save process disconnected but not terminated 1942662| kit/KitWebSocket.cpp:352
Nov 21 15:40:44 REDACTED coolwsd[1916558]: kit-1916558-1916558 2025-11-21 15:40:44.645107 +1100 [kitbroker_009] WRN #20: Socket still open post onDisconnect(), forced shutdown.| net/Socket.hpp:1283
Nov 21 15:45:51 REDACTED coolwsd[1916558]: kit-1916558-1916558 2025-11-21 15:45:51.466356 +1100 [kitbroker_009] WRN #21: Socket still open post onDisconnect(), forced shutdown.| net/Socket.hpp:1283
Nov 21 15:45:51 REDACTED coolwsd[1943571]: kit-1916558-1943571 2025-11-21 15:45:51.467490 +1100 [kitbgsv_00d_00b] WRN #20: Socket still open post onDisconnect(), forced shutdown.| net/Socket.hpp:1283

```

I can’t remember where I got the nginx proxy config (most likely based on the official repo [here](https://github.com/CollaboraOnline/online/blob/master/etc/nginx/coolwsd.conf)), nor how much it’s been modified for our production, but here it is:

```auto
# ANSIBLE_IGNORE_THIS_FILE

server {
    listen 80;
    server_name REDACTED;

    location / {
      return 301 https://$http_host$request_uri;
    }

}

server {
    listen 443 ssl http2;
    server_name REDACTED;

    ssl_certificate [...]

[...]

    # REDACTED_NAME added 2025-08-27 for very large docs!
    client_max_body_size 512m;

    location /browser {
        proxy_pass http://127.0.0.1:9980;
        proxy_set_header Host $http_host;
    }

    location /loleaflet {
        proxy_pass http://127.0.0.1:9980;
        proxy_set_header Host $http_host;
    }

    # WOPI discovery URL
    location /hosting/discovery {
        proxy_pass http://127.0.0.1:9980;
        proxy_set_header Host $http_host;
    }

    # capabilities
    location /hosting/capabilities {
        proxy_pass http://127.0.0.1:9980;
        proxy_set_header Host $http_host;
    }

    # main web connection
    location ~ ^/cool/(.*)/ws$ {
        proxy_pass http://127.0.0.1:9980;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
        proxy_set_header Host $http_host;
        proxy_read_timeout 36000s;
    }

    # download, presentation and image upload
    location ~ ^/(c|l)ool {
        proxy_pass http://127.0.0.1:9980;
        proxy_set_header Host $http_host;
    }

    # priority rule to match admin console websocket
    location ^~ /cool/adminws {
        proxy_pass http://127.0.0.1:9980;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
        proxy_set_header Host $http_host;
        proxy_read_timeout 36000s;
    }

    # REDACTED_NAME added 2023-06-03
    # default PHP uptime status landing page only
    location = / {
        root /var/www/collabora;
        try_files $uri $uri/ /index.php;
        index index.php;
        fastcgi_param HTTP_PROXY "";
        fastcgi_intercept_errors off;
        fastcgi_hide_header X-Powered-By;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_pass unix:/run/php/php8.2-fpm.sock;
        fastcgi_index index.php;
        fastcgi_read_timeout 300s;
    }

    # REDACTED_NAME added 2023-11-01
    # ignore everything else non-specific
    location / {
        return 404;
    }
}

```
