[GH-ISSUE #819] 504 when using ConvertService.ashx #389

Closed
opened 2026-02-26 10:32:20 +03:00 by kerem · 10 comments
Owner

Originally created by @Laur1nMartins on GitHub (Jun 20, 2025).
Original GitHub issue: https://github.com/ONLYOFFICE/Docker-DocumentServer/issues/819

Originally assigned to: @igwyd on GitHub.

The conversion request fails. This has worked a couple of weeks ago but this week we started to notice this problem.

We are on Version: 8.2.3. Build: 6.

This seems to only happen with this endpoint. The editor and viewer can open the files without issue.

These logs are captured using 9.0 which behaves just like 8.2 in this regard.

(part of) nginx debug log

2025/06/20 20:12:01 [debug] 11470#11470: *10 http proxy header: "User-Agent: Go-http-client/1.1"
2025/06/20 20:12:01 [debug] 11470#11470: *10 http proxy header: "Accept: application/json"
2025/06/20 20:12:01 [debug] 11470#11470: *10 http proxy header: "Accept-Encoding: gzip"
2025/06/20 20:12:01 [debug] 11470#11470: \*10 http proxy header:
"POST /ConvertService.ashx HTTP/1.0
Host: ims_onlyoffice:80
Connection: close
X-Forwarded-Host: ims_onlyoffice:80
X-Forwarded-Proto: http
X-Forwarded-For: 172.22.0.3
Content-Length: 692
User-Agent: Go-http-client/1.1
Accept: application/json
Accept-Encoding: gzip

"
2025/06/20 20:12:01 [debug] 11470#11470: *10 posix_memalign: 0000AAAAC9B2BA60:4096 @16
<more debug stuff>
2025/06/20 20:13:01 [error] 11470#11470: *10 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 172.22.0.3, server: , request: "POST /ConvertService.ashx HTTP/1.1", upstream: "http://127.0.0.1:8000/ConvertService.ashx", host: "ims_onlyoffice:80"
2025/06/20 20:13:01 [debug] 11470#11470: *10 finalize http upstream request: 504
2025/06/20 20:13:01 [debug] 11470#11470: *10 finalize http proxy request

docservice/out.log

[2025-06-20T20:12:01.103] [INFO] [localhost] [docId] [userId] nodeJS - convertRequest start
[2025-06-20T20:12:01.107] [DEBUG] [localhost] [docId] [userId] nodeJS - checkJwt success: decoded = {"async":false,"authorized":true,"exp":1750450381,"fileTag":"docx","key":"imsFile10108-01-12-20-66-60-20009","outputtype":"pdf","title":"P-P-001_Produktrealisierung","url":"http://ims:9000/ims/getFile/10108/P-P-001_Produktrealisierung.docx?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdXRob3JpemVkIjp0cnVlLCJleHAiOjE3NTA0NTAzODEsInVzZXIiOnsiaWQiOjEsIm5hbWUiOiIifX0.xNMBHQQciLFnoxhdcTzXTdBxlodpzPxtLTKT1T7afEU&ref_id=","user":{"id":1,"name":""}}
[2025-06-20T20:12:01.107] [DEBUG] [localhost] [imsFile10108-01-12-20-66-60-20009] [userId] nodeJS - Start convert request
[2025-06-20T20:12:22.659] [INFO] [localhost] [docId] [userId] nodeJS - refreshWopiLock start
[2025-06-20T20:12:22.659] [INFO] [localhost] [docId] [userId] nodeJS - refreshWopiLock end
[2025-06-20T20:12:22.708] [DEBUG] [localhost] [docId] [userId] nodeJS - expireDoc connections.length = 0
[2025-06-20T20:12:22.809] [INFO] [localhost] [docId] [userId] nodeJS - checkDocumentExpire start
[2025-06-20T20:12:22.809] [INFO] [localhost] [docId] [userId] nodeJS - checkDocumentExpire end: startSaveCount = 0, removedCount = 0
[2025-06-20T20:12:22.826] [INFO] [localhost] [docId] [userId] nodeJS - forceSaveTimeout start
[2025-06-20T20:12:22.826] [INFO] [localhost] [docId] [userId] nodeJS - forceSaveTimeout end
[2025-06-20T20:13:01.138] [INFO] [localhost] [docId] [userId] nodeJS - convertRequest start
[2025-06-20T20:13:01.139] [DEBUG] [localhost] [docId] [userId] nodeJS - checkJwt success: decoded = {"async":false,"authorized":true,"exp":1750450441,"fileTag":"docx","key":"imsFile10108-01-13-20-66-60-20009","outputtype":"pdf","title":"P-P-001_Produktrealisierung","url":"http://ims:9000/ims/getFile/10108/P-P-001_Produktrealisierung.docx?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdXRob3JpemVkIjp0cnVlLCJleHAiOjE3NTA0NTA0NDEsInVzZXIiOnsiaWQiOjEsIm5hbWUiOiIifX0.tsIYfdfvdQrWJXTsro58PT0wO-xBnWZ2nxrkEHTTAoc&ref_id=","user":{"id":1,"name":""}}
[2025-06-20T20:13:01.139] [DEBUG] [localhost] [imsFile10108-01-13-20-66-60-20009] [userId] nodeJS - Start convert request
[2025-06-20T20:13:01.910] [INFO] [localhost] [imsFile10108-01-12-20-66-60-20009] [userId] nodeJS - receiveTask start: {"ctx":{"tenant":"localhost","docId":"imsFile10108-01-12-20-66-60-20009","userId":"userId"},"cmd":{"withAuthorization":true,"c":"conv","id":"conv_imsFile10108-01-12-20-66-60-20009_513","format":"","url":"http://ims:9000/ims/getFile/10108/P-P-001_Produktrealisierung.docx?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdXRob3JpemVkIjp0cnVlLCJleHAiOjE3NTA0NTAzODEsInVzZXIiOnsiaWQiOjEsIm5hbWUiOiIifX0.xNMBHQQciLFnoxhdcTzXTdBxlodpzPxtLTKT1T7afEU&ref_id=","title":"P-P-001_Produktrealisierung.pdf","outputformat":513,"outputpath":"output.pdf","codepage":46,"delimiter":4,"embeddedfonts":false,"status_info":0,"nobase64":true}}
[2025-06-20T20:13:01.913] [INFO] [localhost] [imsFile10108-01-12-20-66-60-20009] [userId] nodeJS - receiveTask end
[2025-06-20T20:13:02.576] [DEBUG] [localhost] [imsFile10108-01-12-20-66-60-20009] [userId] nodeJS - End convert request end true status 0
[2025-06-20T20:13:02.576] [DEBUG] [localhost] [imsFile10108-01-12-20-66-60-20009] [userId] nodeJS - getBaseUrlByRequest protocol=http host=ims_onlyoffice:80 x-forwarded-host=ims_onlyoffice:80 x-forwarded-proto=http x-forwarded-prefix=undefined cloudfront-forwarded-proto=undefined 
[2025-06-20T20:13:02.577] [DEBUG] [localhost] [imsFile10108-01-12-20-66-60-20009] [userId] nodeJS - convertRequest: url = http://ims%5fonlyoffice:80/cache/files/data/conv_imsFile10108-01-12-20-66-60-20009_513/output.pdf/P-P-001_Produktrealisierung.pdf?md5=UeZACXpsKQ3sgMrMWQ5FdQ&expires=1750451283&filename=P-P-001_Produktrealisierung.pdf
[2025-06-20T20:13:02.578] [INFO] [localhost] [imsFile10108-01-12-20-66-60-20009] [userId] nodeJS - convertRequest end
[2025-06-20T20:13:22.830] [INFO] [localhost] [docId] [userId] nodeJS - forceSaveTimeout start
[2025-06-20T20:13:22.831] [INFO] [localhost] [docId] [userId] nodeJS - forceSaveTimeout end
[2025-06-20T20:14:01.891] [INFO] [localhost] [imsFile10108-01-13-20-66-60-20009] [userId] nodeJS - receiveTask start: {"ctx":{"tenant":"localhost","docId":"imsFile10108-01-13-20-66-60-20009","userId":"userId"},"cmd":{"withAuthorization":true,"c":"conv","id":"conv_imsFile10108-01-13-20-66-60-20009_513","format":"","url":"http://ims:9000/ims/getFile/10108/P-P-001_Produktrealisierung.docx?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdXRob3JpemVkIjp0cnVlLCJleHAiOjE3NTA0NTA0NDEsInVzZXIiOnsiaWQiOjEsIm5hbWUiOiIifX0.tsIYfdfvdQrWJXTsro58PT0wO-xBnWZ2nxrkEHTTAoc&ref_id=","title":"P-P-001_Produktrealisierung.pdf","outputformat":513,"outputpath":"output.pdf","codepage":46,"delimiter":4,"embeddedfonts":false,"status_info":0,"nobase64":true}}
[2025-06-20T20:14:01.894] [INFO] [localhost] [imsFile10108-01-13-20-66-60-20009] [userId] nodeJS - receiveTask end
[2025-06-20T20:14:02.561] [DEBUG] [localhost] [imsFile10108-01-13-20-66-60-20009] [userId] nodeJS - End convert request end true status 0
[2025-06-20T20:14:02.562] [DEBUG] [localhost] [imsFile10108-01-13-20-66-60-20009] [userId] nodeJS - getBaseUrlByRequest protocol=http host=ims_onlyoffice:80 x-forwarded-host=ims_onlyoffice:80 x-forwarded-proto=http x-forwarded-prefix=undefined cloudfront-forwarded-proto=undefined 
[2025-06-20T20:14:02.562] [DEBUG] [localhost] [imsFile10108-01-13-20-66-60-20009] [userId] nodeJS - convertRequest: url = http://ims%5fonlyoffice:80/cache/files/data/conv_imsFile10108-01-13-20-66-60-20009_513/output.pdf/P-P-001_Produktrealisierung.pdf?md5=MRWiaUFyncyEvXj3MvNCbg&expires=1750451343&filename=P-P-001_Produktrealisierung.pdf
[2025-06-20T20:14:02.563] [INFO] [localhost] [imsFile10108-01-13-20-66-60-20009] [userId] nodeJS - convertRequest end
[2025-06-20T20:14:22.716] [DEBUG] [localhost] [docId] [userId] nodeJS - expireDoc connections.length = 0
[2025-06-20T20:14:22.816] [INFO] [localhost] [docId] [userId] nodeJS - checkDocumentExpire start
[2025-06-20T20:14:22.817] [INFO] [localhost] [docId] [userId] nodeJS - checkDocumentExpire end: startSaveCount = 0, removedCount = 0
[2025-06-20T20:14:22.833] [INFO] [localhost] [docId] [userId] nodeJS - forceSaveTimeout start
[2025-06-20T20:14:22.834] [INFO] [localhost] [docId] [userId] nodeJS - forceSaveTimeout end
[2025-06-20T20:15:22.840] [INFO] [localhost] [docId] [userId] nodeJS - forceSaveTimeout start
[2025-06-20T20:15:22.842] [INFO] [localhost] [docId] [userId] nodeJS - forceSaveTimeout end

To me it looks the the task for the conversion takes a minute to be started? And by then nginx already killed the connection.

Originally created by @Laur1nMartins on GitHub (Jun 20, 2025). Original GitHub issue: https://github.com/ONLYOFFICE/Docker-DocumentServer/issues/819 Originally assigned to: @igwyd on GitHub. The conversion request fails. This has worked a couple of weeks ago but this week we started to notice this problem. We are on Version: 8.2.3. Build: 6. This seems to only happen with this endpoint. The editor and viewer can open the files without issue. These logs are captured using 9.0 which behaves just like 8.2 in this regard. (part of) nginx debug log ``` 2025/06/20 20:12:01 [debug] 11470#11470: *10 http proxy header: "User-Agent: Go-http-client/1.1" 2025/06/20 20:12:01 [debug] 11470#11470: *10 http proxy header: "Accept: application/json" 2025/06/20 20:12:01 [debug] 11470#11470: *10 http proxy header: "Accept-Encoding: gzip" 2025/06/20 20:12:01 [debug] 11470#11470: \*10 http proxy header: "POST /ConvertService.ashx HTTP/1.0 Host: ims_onlyoffice:80 Connection: close X-Forwarded-Host: ims_onlyoffice:80 X-Forwarded-Proto: http X-Forwarded-For: 172.22.0.3 Content-Length: 692 User-Agent: Go-http-client/1.1 Accept: application/json Accept-Encoding: gzip " 2025/06/20 20:12:01 [debug] 11470#11470: *10 posix_memalign: 0000AAAAC9B2BA60:4096 @16 <more debug stuff> 2025/06/20 20:13:01 [error] 11470#11470: *10 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 172.22.0.3, server: , request: "POST /ConvertService.ashx HTTP/1.1", upstream: "http://127.0.0.1:8000/ConvertService.ashx", host: "ims_onlyoffice:80" 2025/06/20 20:13:01 [debug] 11470#11470: *10 finalize http upstream request: 504 2025/06/20 20:13:01 [debug] 11470#11470: *10 finalize http proxy request ``` docservice/out.log ``` [2025-06-20T20:12:01.103] [INFO] [localhost] [docId] [userId] nodeJS - convertRequest start [2025-06-20T20:12:01.107] [DEBUG] [localhost] [docId] [userId] nodeJS - checkJwt success: decoded = {"async":false,"authorized":true,"exp":1750450381,"fileTag":"docx","key":"imsFile10108-01-12-20-66-60-20009","outputtype":"pdf","title":"P-P-001_Produktrealisierung","url":"http://ims:9000/ims/getFile/10108/P-P-001_Produktrealisierung.docx?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdXRob3JpemVkIjp0cnVlLCJleHAiOjE3NTA0NTAzODEsInVzZXIiOnsiaWQiOjEsIm5hbWUiOiIifX0.xNMBHQQciLFnoxhdcTzXTdBxlodpzPxtLTKT1T7afEU&ref_id=","user":{"id":1,"name":""}} [2025-06-20T20:12:01.107] [DEBUG] [localhost] [imsFile10108-01-12-20-66-60-20009] [userId] nodeJS - Start convert request [2025-06-20T20:12:22.659] [INFO] [localhost] [docId] [userId] nodeJS - refreshWopiLock start [2025-06-20T20:12:22.659] [INFO] [localhost] [docId] [userId] nodeJS - refreshWopiLock end [2025-06-20T20:12:22.708] [DEBUG] [localhost] [docId] [userId] nodeJS - expireDoc connections.length = 0 [2025-06-20T20:12:22.809] [INFO] [localhost] [docId] [userId] nodeJS - checkDocumentExpire start [2025-06-20T20:12:22.809] [INFO] [localhost] [docId] [userId] nodeJS - checkDocumentExpire end: startSaveCount = 0, removedCount = 0 [2025-06-20T20:12:22.826] [INFO] [localhost] [docId] [userId] nodeJS - forceSaveTimeout start [2025-06-20T20:12:22.826] [INFO] [localhost] [docId] [userId] nodeJS - forceSaveTimeout end [2025-06-20T20:13:01.138] [INFO] [localhost] [docId] [userId] nodeJS - convertRequest start [2025-06-20T20:13:01.139] [DEBUG] [localhost] [docId] [userId] nodeJS - checkJwt success: decoded = {"async":false,"authorized":true,"exp":1750450441,"fileTag":"docx","key":"imsFile10108-01-13-20-66-60-20009","outputtype":"pdf","title":"P-P-001_Produktrealisierung","url":"http://ims:9000/ims/getFile/10108/P-P-001_Produktrealisierung.docx?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdXRob3JpemVkIjp0cnVlLCJleHAiOjE3NTA0NTA0NDEsInVzZXIiOnsiaWQiOjEsIm5hbWUiOiIifX0.tsIYfdfvdQrWJXTsro58PT0wO-xBnWZ2nxrkEHTTAoc&ref_id=","user":{"id":1,"name":""}} [2025-06-20T20:13:01.139] [DEBUG] [localhost] [imsFile10108-01-13-20-66-60-20009] [userId] nodeJS - Start convert request [2025-06-20T20:13:01.910] [INFO] [localhost] [imsFile10108-01-12-20-66-60-20009] [userId] nodeJS - receiveTask start: {"ctx":{"tenant":"localhost","docId":"imsFile10108-01-12-20-66-60-20009","userId":"userId"},"cmd":{"withAuthorization":true,"c":"conv","id":"conv_imsFile10108-01-12-20-66-60-20009_513","format":"","url":"http://ims:9000/ims/getFile/10108/P-P-001_Produktrealisierung.docx?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdXRob3JpemVkIjp0cnVlLCJleHAiOjE3NTA0NTAzODEsInVzZXIiOnsiaWQiOjEsIm5hbWUiOiIifX0.xNMBHQQciLFnoxhdcTzXTdBxlodpzPxtLTKT1T7afEU&ref_id=","title":"P-P-001_Produktrealisierung.pdf","outputformat":513,"outputpath":"output.pdf","codepage":46,"delimiter":4,"embeddedfonts":false,"status_info":0,"nobase64":true}} [2025-06-20T20:13:01.913] [INFO] [localhost] [imsFile10108-01-12-20-66-60-20009] [userId] nodeJS - receiveTask end [2025-06-20T20:13:02.576] [DEBUG] [localhost] [imsFile10108-01-12-20-66-60-20009] [userId] nodeJS - End convert request end true status 0 [2025-06-20T20:13:02.576] [DEBUG] [localhost] [imsFile10108-01-12-20-66-60-20009] [userId] nodeJS - getBaseUrlByRequest protocol=http host=ims_onlyoffice:80 x-forwarded-host=ims_onlyoffice:80 x-forwarded-proto=http x-forwarded-prefix=undefined cloudfront-forwarded-proto=undefined [2025-06-20T20:13:02.577] [DEBUG] [localhost] [imsFile10108-01-12-20-66-60-20009] [userId] nodeJS - convertRequest: url = http://ims%5fonlyoffice:80/cache/files/data/conv_imsFile10108-01-12-20-66-60-20009_513/output.pdf/P-P-001_Produktrealisierung.pdf?md5=UeZACXpsKQ3sgMrMWQ5FdQ&expires=1750451283&filename=P-P-001_Produktrealisierung.pdf [2025-06-20T20:13:02.578] [INFO] [localhost] [imsFile10108-01-12-20-66-60-20009] [userId] nodeJS - convertRequest end [2025-06-20T20:13:22.830] [INFO] [localhost] [docId] [userId] nodeJS - forceSaveTimeout start [2025-06-20T20:13:22.831] [INFO] [localhost] [docId] [userId] nodeJS - forceSaveTimeout end [2025-06-20T20:14:01.891] [INFO] [localhost] [imsFile10108-01-13-20-66-60-20009] [userId] nodeJS - receiveTask start: {"ctx":{"tenant":"localhost","docId":"imsFile10108-01-13-20-66-60-20009","userId":"userId"},"cmd":{"withAuthorization":true,"c":"conv","id":"conv_imsFile10108-01-13-20-66-60-20009_513","format":"","url":"http://ims:9000/ims/getFile/10108/P-P-001_Produktrealisierung.docx?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdXRob3JpemVkIjp0cnVlLCJleHAiOjE3NTA0NTA0NDEsInVzZXIiOnsiaWQiOjEsIm5hbWUiOiIifX0.tsIYfdfvdQrWJXTsro58PT0wO-xBnWZ2nxrkEHTTAoc&ref_id=","title":"P-P-001_Produktrealisierung.pdf","outputformat":513,"outputpath":"output.pdf","codepage":46,"delimiter":4,"embeddedfonts":false,"status_info":0,"nobase64":true}} [2025-06-20T20:14:01.894] [INFO] [localhost] [imsFile10108-01-13-20-66-60-20009] [userId] nodeJS - receiveTask end [2025-06-20T20:14:02.561] [DEBUG] [localhost] [imsFile10108-01-13-20-66-60-20009] [userId] nodeJS - End convert request end true status 0 [2025-06-20T20:14:02.562] [DEBUG] [localhost] [imsFile10108-01-13-20-66-60-20009] [userId] nodeJS - getBaseUrlByRequest protocol=http host=ims_onlyoffice:80 x-forwarded-host=ims_onlyoffice:80 x-forwarded-proto=http x-forwarded-prefix=undefined cloudfront-forwarded-proto=undefined [2025-06-20T20:14:02.562] [DEBUG] [localhost] [imsFile10108-01-13-20-66-60-20009] [userId] nodeJS - convertRequest: url = http://ims%5fonlyoffice:80/cache/files/data/conv_imsFile10108-01-13-20-66-60-20009_513/output.pdf/P-P-001_Produktrealisierung.pdf?md5=MRWiaUFyncyEvXj3MvNCbg&expires=1750451343&filename=P-P-001_Produktrealisierung.pdf [2025-06-20T20:14:02.563] [INFO] [localhost] [imsFile10108-01-13-20-66-60-20009] [userId] nodeJS - convertRequest end [2025-06-20T20:14:22.716] [DEBUG] [localhost] [docId] [userId] nodeJS - expireDoc connections.length = 0 [2025-06-20T20:14:22.816] [INFO] [localhost] [docId] [userId] nodeJS - checkDocumentExpire start [2025-06-20T20:14:22.817] [INFO] [localhost] [docId] [userId] nodeJS - checkDocumentExpire end: startSaveCount = 0, removedCount = 0 [2025-06-20T20:14:22.833] [INFO] [localhost] [docId] [userId] nodeJS - forceSaveTimeout start [2025-06-20T20:14:22.834] [INFO] [localhost] [docId] [userId] nodeJS - forceSaveTimeout end [2025-06-20T20:15:22.840] [INFO] [localhost] [docId] [userId] nodeJS - forceSaveTimeout start [2025-06-20T20:15:22.842] [INFO] [localhost] [docId] [userId] nodeJS - forceSaveTimeout end ``` To me it looks the the task for the conversion takes a minute to be started? And by then nginx already killed the connection.
kerem closed this issue 2026-02-26 10:32:20 +03:00
Author
Owner

@igwyd commented on GitHub (Jul 9, 2025):

Hello @Laur1nMartins, sorry for the late reply. Please provide steps to reproduce: show command for run documentserver and conversion request. Do you get this error only with a specific PDF or with all PDFs or with all formats? Does conversion work in the editor interface (File - Download As)?

<!-- gh-comment-id:3052189031 --> @igwyd commented on GitHub (Jul 9, 2025): Hello @Laur1nMartins, sorry for the late reply. Please provide steps to reproduce: show command for run documentserver and conversion request. Do you get this error only with a specific PDF or with all PDFs or with all formats? Does conversion work in the editor interface (File - Download As)?
Author
Owner

@Laur1nMartins commented on GitHub (Jul 9, 2025):

To start the document server we use this as part of our general compose setup:

services: 
...
  ims_dev_onlyoffice:
      container_name: "ims_onlyoffice"
      image: onlyoffice/documentserver:9.0
      environment:
        - JWT_SECRET=${JWT_SECRET}
      networks:
        - "ims-dev-traefik-bridge"
        - "ims-dev-onlyoffice-bridge"
      volumes:
        - ./docker/onlyoffice/log4js.json:/etc/onlyoffice/documentserver/log4js/production.json
...

For clarification: If a document is already a PDF we dont invoke the conversion endpoints. We only do that for doc/x etc. And from what i can see all of those requests fail.

==> /var/log/onlyoffice/documentserver/docservice/out.log <==

[2025-07-09T11:45:00.209] [INFO] [localhost] [docId] [userId] nodeJS - convertRequest start

[2025-07-09T11:45:00.210] [DEBUG] [localhost] [docId] [userId] nodeJS - checkJwt success: decoded = {"async":false,"authorized":true,"exp":1752061560,"fileTag":"docx","key":"imsFile-10108_v1.0.0","outputtype":"pdf","title":"P-P-01_Produktrealisierung","url":"http://ims:9000/ims/getFile/10108/P-P-01_Produktrealisierung.docx?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdXRob3JpemVkIjp0cnVlLCJleHAiOjE3NTIwNjE1NjAsInVzZXIiOnsiaWQiOjEsIm5hbWUiOiIifX0.8bQlElNWkONgl3m69YwhDSEj2EV0X1LlxH42PUL-5SM&ref_id=8358c8f7cfbb9c14","user":{"id":1,"name":""}}

[2025-07-09T11:45:00.210] [DEBUG] [localhost] [imsFile-10108_v1.0.0] [userId] nodeJS - Start convert request


==> /var/log/onlyoffice/documentserver/converter/out.log <==

[2025-07-09T11:45:00.214] [DEBUG] [localhost] [imsFile-10108_v1.0.0] [userId] nodeJS - downloadFile complete filesize=140956 sha256=466ac6ca9d2cb3c07911b14bf031d32e9257f4580996c153fc3d1655a02b297a

[2025-07-09T11:45:01.064] [DEBUG] [localhost] [imsFile-10108_v1.0.0] [userId] nodeJS - stdout:

[2025-07-09T11:45:01.064] [DEBUG] [localhost] [imsFile-10108_v1.0.0] [userId] nodeJS - stderr:

[2025-07-09T11:45:01.064] [DEBUG] [localhost] [imsFile-10108_v1.0.0] [userId] nodeJS - ExitCode (code=0;signal=null;error:0)

[2025-07-09T11:45:01.068] [DEBUG] [localhost] [imsFile-10108_v1.0.0] [userId] nodeJS - processUploadToStorageChunk path=conv_imsFile-10108_v1.0.0_513/output.pdf; sha256=cb241d4c82bf546178d6a2122abf7fc906bfbc53e1ad59bc6d641056c5dab73f

[2025-07-09T11:45:01.069] [DEBUG] [localhost] [imsFile-10108_v1.0.0] [userId] nodeJS - processUploadToStorage complete

[2025-07-09T11:45:01.069] [DEBUG] [localhost] [imsFile-10108_v1.0.0] [userId] nodeJS - output (data={"ctx":{"tenant":"localhost","docId":"imsFile-10108_v1.0.0","userId":"userId"},"cmd":{"withAuthorization":true,"c":"conv","id":"conv_imsFile-10108_v1.0.0_513","format":"","url":"http://ims:9000/ims/getFile/10108/P-P-01_Produktrealisierung.docx?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdXRob3JpemVkIjp0cnVlLCJleHAiOjE3NTIwNjE1MDAsInVzZXIiOnsiaWQiOjEsIm5hbWUiOiIifX0.BQWBFix8mmmq7g-F2phEEZY8tsKsZkpiw55U1fT_T8M&ref_id=55885b7059f1864d","title":"P-P-01_Produktrealisierung.pdf","outputformat":513,"outputpath":"output.pdf","codepage":46,"delimiter":4,"embeddedfonts":false,"status_info":0,"nobase64":true}})

[2025-07-09T11:45:01.069] [DEBUG] [localhost] [imsFile-10108_v1.0.0] [userId] nodeJS - postProcess

[2025-07-09T11:45:01.071] [DEBUG] [localhost] [imsFile-10108_v1.0.0] [userId] nodeJS - deleteFolderRecursive

[2025-07-09T11:45:01.071] [INFO] [localhost] [imsFile-10108_v1.0.0] [userId] nodeJS - End Task

Download as PDF works instantly. After that the conversion endpoint returns the file also instantly. Files that have not been used in that way have the problematic behaviour frrom what i can see in my testing.

Nginx error log:

2025/07/09 11:45:00 [error] 11461#11461: *2 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 172.23.0.3, server: , request: "POST /ConvertService.ashx HTTP/1.1", upstream: "http://127.0.0.1:8000/ConvertService.ashx", host: "ims_onlyoffice:80"

The file download from our server happens on the same second as we send the conversion request.
If the convert a file that OnlyOffice has not yet seen we run into the 504 everytime.

If we interact with the file via the editor or other ways, sometimes the conversion works as normal.
This is really hard to track down tbh.

<!-- gh-comment-id:3052357634 --> @Laur1nMartins commented on GitHub (Jul 9, 2025): To start the document server we use this as part of our general compose setup: ``` services: ... ims_dev_onlyoffice: container_name: "ims_onlyoffice" image: onlyoffice/documentserver:9.0 environment: - JWT_SECRET=${JWT_SECRET} networks: - "ims-dev-traefik-bridge" - "ims-dev-onlyoffice-bridge" volumes: - ./docker/onlyoffice/log4js.json:/etc/onlyoffice/documentserver/log4js/production.json ... ``` For clarification: If a document is already a PDF we dont invoke the conversion endpoints. We only do that for doc/x etc. And from what i can see all of those requests fail. ``` ==> /var/log/onlyoffice/documentserver/docservice/out.log <== [2025-07-09T11:45:00.209] [INFO] [localhost] [docId] [userId] nodeJS - convertRequest start [2025-07-09T11:45:00.210] [DEBUG] [localhost] [docId] [userId] nodeJS - checkJwt success: decoded = {"async":false,"authorized":true,"exp":1752061560,"fileTag":"docx","key":"imsFile-10108_v1.0.0","outputtype":"pdf","title":"P-P-01_Produktrealisierung","url":"http://ims:9000/ims/getFile/10108/P-P-01_Produktrealisierung.docx?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdXRob3JpemVkIjp0cnVlLCJleHAiOjE3NTIwNjE1NjAsInVzZXIiOnsiaWQiOjEsIm5hbWUiOiIifX0.8bQlElNWkONgl3m69YwhDSEj2EV0X1LlxH42PUL-5SM&ref_id=8358c8f7cfbb9c14","user":{"id":1,"name":""}} [2025-07-09T11:45:00.210] [DEBUG] [localhost] [imsFile-10108_v1.0.0] [userId] nodeJS - Start convert request ==> /var/log/onlyoffice/documentserver/converter/out.log <== [2025-07-09T11:45:00.214] [DEBUG] [localhost] [imsFile-10108_v1.0.0] [userId] nodeJS - downloadFile complete filesize=140956 sha256=466ac6ca9d2cb3c07911b14bf031d32e9257f4580996c153fc3d1655a02b297a [2025-07-09T11:45:01.064] [DEBUG] [localhost] [imsFile-10108_v1.0.0] [userId] nodeJS - stdout: [2025-07-09T11:45:01.064] [DEBUG] [localhost] [imsFile-10108_v1.0.0] [userId] nodeJS - stderr: [2025-07-09T11:45:01.064] [DEBUG] [localhost] [imsFile-10108_v1.0.0] [userId] nodeJS - ExitCode (code=0;signal=null;error:0) [2025-07-09T11:45:01.068] [DEBUG] [localhost] [imsFile-10108_v1.0.0] [userId] nodeJS - processUploadToStorageChunk path=conv_imsFile-10108_v1.0.0_513/output.pdf; sha256=cb241d4c82bf546178d6a2122abf7fc906bfbc53e1ad59bc6d641056c5dab73f [2025-07-09T11:45:01.069] [DEBUG] [localhost] [imsFile-10108_v1.0.0] [userId] nodeJS - processUploadToStorage complete [2025-07-09T11:45:01.069] [DEBUG] [localhost] [imsFile-10108_v1.0.0] [userId] nodeJS - output (data={"ctx":{"tenant":"localhost","docId":"imsFile-10108_v1.0.0","userId":"userId"},"cmd":{"withAuthorization":true,"c":"conv","id":"conv_imsFile-10108_v1.0.0_513","format":"","url":"http://ims:9000/ims/getFile/10108/P-P-01_Produktrealisierung.docx?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdXRob3JpemVkIjp0cnVlLCJleHAiOjE3NTIwNjE1MDAsInVzZXIiOnsiaWQiOjEsIm5hbWUiOiIifX0.BQWBFix8mmmq7g-F2phEEZY8tsKsZkpiw55U1fT_T8M&ref_id=55885b7059f1864d","title":"P-P-01_Produktrealisierung.pdf","outputformat":513,"outputpath":"output.pdf","codepage":46,"delimiter":4,"embeddedfonts":false,"status_info":0,"nobase64":true}}) [2025-07-09T11:45:01.069] [DEBUG] [localhost] [imsFile-10108_v1.0.0] [userId] nodeJS - postProcess [2025-07-09T11:45:01.071] [DEBUG] [localhost] [imsFile-10108_v1.0.0] [userId] nodeJS - deleteFolderRecursive [2025-07-09T11:45:01.071] [INFO] [localhost] [imsFile-10108_v1.0.0] [userId] nodeJS - End Task ``` Download as PDF works instantly. After that the conversion endpoint returns the file also instantly. Files that have not been used in that way have the problematic behaviour frrom what i can see in my testing. Nginx error log: ``` 2025/07/09 11:45:00 [error] 11461#11461: *2 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 172.23.0.3, server: , request: "POST /ConvertService.ashx HTTP/1.1", upstream: "http://127.0.0.1:8000/ConvertService.ashx", host: "ims_onlyoffice:80" ``` The file download from our server happens on the same second as we send the conversion request. If the convert a file that OnlyOffice has not yet seen we run into the 504 everytime. If we interact with the file via the editor or other ways, sometimes the conversion works as normal. This is really hard to track down tbh.
Author
Owner

@igwyd commented on GitHub (Jul 9, 2025):

Try increasing the nginx timeout /etc/nginx/nginx.conf, the conversion can occur after the connection is broken:

http{
  proxy_read_timeout 500;
  proxy_connect_timeout 500;
  proxy_send_timeout 500;
}

Are you using an external proxy traefik? Try sending the request without an external proxy.

<!-- gh-comment-id:3052980519 --> @igwyd commented on GitHub (Jul 9, 2025): Try increasing the nginx timeout `/etc/nginx/nginx.conf`, the conversion can occur after the connection is broken: ``` http{ proxy_read_timeout 500; proxy_connect_timeout 500; proxy_send_timeout 500; } ``` Are you using an external proxy traefik? Try sending the request without an external proxy.
Author
Owner

@Laur1nMartins commented on GitHub (Jul 9, 2025):

Will try that.

The compose setup contains a traefik instance but internal requests like this are not routed through it.
The request is made using the container name so it should not go through the traefik instance.

<!-- gh-comment-id:3053058741 --> @Laur1nMartins commented on GitHub (Jul 9, 2025): Will try that. The compose setup contains a traefik instance but internal requests like this are not routed through it. The request is made using the container name so it should not go through the traefik instance.
Author
Owner

@Laur1nMartins commented on GitHub (Jul 9, 2025):

The core issue of the task being actually started a minute after it is recieved does not change. Sure i can increase timeouts in all my services but that is not a good solution.

What can i do to debug this?

<!-- gh-comment-id:3053111128 --> @Laur1nMartins commented on GitHub (Jul 9, 2025): The core issue of the task being actually started a minute after it is recieved does not change. Sure i can increase timeouts in all my services but that is not a good solution. What can i do to debug this?
Author
Owner

@igwyd commented on GitHub (Jul 10, 2025):

The core issue of the task being actually started a minute after it is recieved does not change. Sure i can increase timeouts in all my services but that is not a good solution.

I agree, but did it work?

<!-- gh-comment-id:3055626686 --> @igwyd commented on GitHub (Jul 10, 2025): > The core issue of the task being actually started a minute after it is recieved does not change. Sure i can increase timeouts in all my services but that is not a good solution. I agree, but did it work?
Author
Owner

@Laur1nMartins commented on GitHub (Jul 10, 2025):

In short: no.

Sorry should have mentioned that other timeouts are happening then. The JWT i send with the request is only valid for 1 minute therefore the incoming request for file download fails.

Will try again with longer JWT valid time range.

Is there a way to better debug the job traversal throughout the onlyoffice system? Like i said in the beginning it is a pretty consistent one minute delay from when the job arrives and when its actually starting to be worked on.

<!-- gh-comment-id:3056044450 --> @Laur1nMartins commented on GitHub (Jul 10, 2025): In short: no. Sorry should have mentioned that other timeouts are happening then. The JWT i send with the request is only valid for 1 minute therefore the incoming request for file download fails. Will try again with longer JWT valid time range. Is there a way to better debug the job traversal throughout the onlyoffice system? Like i said in the beginning it is a pretty consistent one minute delay from when the job arrives and when its actually starting to be worked on.
Author
Owner

@Laur1nMartins commented on GitHub (Jul 10, 2025):

would it be helpful if i'd setup a remote instance with our system for you guys to take a look at? Maybe you instantly spot the issue. Pretty sure i do something wrong somehow but i just cant figure out what that is.

<!-- gh-comment-id:3056097366 --> @Laur1nMartins commented on GitHub (Jul 10, 2025): would it be helpful if i'd setup a remote instance with our system for you guys to take a look at? Maybe you instantly spot the issue. Pretty sure i do something wrong somehow but i just cant figure out what that is.
Author
Owner

@igwyd commented on GitHub (Jul 11, 2025):

would it be helpful if i'd setup a remote instance with our system for you guys to take a look at?

This is only available with our technical support, if u need it, then contact sales@onlyoffice.com

Is there a way to better debug the job traversal throughout the onlyoffice system? Like i said in the beginning it is a pretty consistent one minute delay from when the job arrives and when its actually starting to be worked on.

We assume that the conversion is fast, but starts late. Please try to repeat this behavior and provide logs together docservice/out.log, converter/out.log and nginx. It is necessary that in the logs it is visible when the request came, when the conversion, and when the response.
And one more clarification, do you have a docker container without external dependencies?

<!-- gh-comment-id:3060602202 --> @igwyd commented on GitHub (Jul 11, 2025): > would it be helpful if i'd setup a remote instance with our system for you guys to take a look at? This is only available with our technical support, if u need it, then contact [sales@onlyoffice.com](mailto:sales@onlyoffice.com) > Is there a way to better debug the job traversal throughout the onlyoffice system? Like i said in the beginning it is a pretty consistent one minute delay from when the job arrives and when its actually starting to be worked on. We assume that the conversion is fast, but starts late. Please try to repeat this behavior and provide logs together docservice/out.log, converter/out.log and nginx. It is necessary that in the logs it is visible when the request came, when the conversion, and when the response. And one more clarification, do you have a docker container without external dependencies?
Author
Owner

@Laur1nMartins commented on GitHub (Jul 29, 2025):

Sorry for not responding sooner.

So basically this behaviour stopped now from what i can tell. Might be that something has changed internally or whatever.

<!-- gh-comment-id:3133183960 --> @Laur1nMartins commented on GitHub (Jul 29, 2025): Sorry for not responding sooner. So basically this behaviour stopped now from what i can tell. Might be that something has changed internally or whatever.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/Docker-DocumentServer-ONLYOFFICE#389
No description provided.