Error in Nextcloud Office

Hi everybody

I’m facing a problem on my installation of Nextcloud Office (10.1.1 now) and this is my configuration:

  • Nextcloud Server version 33.0.0
  • Ubuntu 25.1
  • Web server Apache 2.4.64
  • PHP version 8.4.11

The problem is that everything it look like running without problem but I get many error on the log.

In the configuration panel it looks everithing ok

But in the log, (not everytime but most timeI I get an error:
[richdocuments] Errore: Failed to convert preview: cURL error 28: Operation timed out after 5001 milliseconds with 0 bytes received (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for https://****************/apps/richdocumentscode/proxy.php?req=/cool/convert-to/png GET /index.php/core/preview?fileId=60838&x=256&y=256&a=1&mode=cover&forceIcon=0 dal ************** alle 18 mar 2026, 23:26:49

The complete error is:

{
  "reqId": "s5A8DincK2Wg9S9VpDqb",
  "level": 3,
  "time": "2026-03-18T22:26:49+00:00",
  "remoteAddr": "*******",
  "user": "*******",
  "app": "richdocuments",
  "method": "GET",
  "url": "/index.php/core/preview?fileId=60838&x=256&y=256&a=1&mode=cover&forceIcon=0",
  "scriptName": "/index.php",
  "message": "Failed to convert preview: cURL error 28: Operation timed out after 5001 milliseconds with 0 bytes received (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for https://*************/apps/richdocumentscode/proxy.php?req=/cool/convert-to/png",
  "userAgent": "Mozilla/5.0 (Android) Nextcloud-android/33.0.0",
  "version": "33.0.0.16",
  "exception": {
    "Exception": "GuzzleHttp\\Exception\\ConnectException",
    "Message": "cURL error 28: Operation timed out after 5001 milliseconds with 0 bytes received (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for https://*************/apps/richdocumentscode/proxy.php?req=/cool/convert-to/png",
    "Code": 0,
    "Trace": [
      {
        "file": "/var/www/html/nextcloud/3rdparty/guzzlehttp/guzzle/src/Handler/CurlFactory.php",
        "line": 207,
        "function": "createRejection",
        "class": "GuzzleHttp\\Handler\\CurlFactory",
        "type": "::",
        "args": [
          "*** sensitive parameters replaced ***"
        ]
      },
      {
        "file": "/var/www/html/nextcloud/3rdparty/guzzlehttp/guzzle/src/Handler/CurlFactory.php",
        "line": 159,
        "function": "finishError",
        "class": "GuzzleHttp\\Handler\\CurlFactory",
        "type": "::"
      },
      {
        "file": "/var/www/html/nextcloud/3rdparty/guzzlehttp/guzzle/src/Handler/CurlHandler.php",
        "line": 47,
        "function": "finish",
        "class": "GuzzleHttp\\Handler\\CurlFactory",
        "type": "::"
      },
      {
        "file": "/var/www/html/nextcloud/3rdparty/guzzlehttp/guzzle/src/Middleware.php",
        "line": 142,
        "function": "__invoke",
        "class": "GuzzleHttp\\Handler\\CurlHandler",
        "type": "->"
      },
      {
        "file": "/var/www/html/nextcloud/lib/private/Http/Client/DnsPinMiddleware.php",
        "line": 110,
        "function": "{closure:{closure:GuzzleHttp\\Middleware::tap():137}:138}",
        "class": "GuzzleHttp\\Middleware",
        "type": "::",
        "args": [
          "*** sensitive parameters replaced ***"
        ]
      },
      {
        "file": "/var/www/html/nextcloud/3rdparty/guzzlehttp/guzzle/src/PrepareBodyMiddleware.php",
        "line": 64,
        "function": "{closure:{closure:OC\\Http\\Client\\DnsPinMiddleware::addDnsPinning():104}:105}",
        "class": "OC\\Http\\Client\\DnsPinMiddleware",
        "type": "->",
        "args": [
          "*** sensitive parameters replaced ***"
        ]
      },
      {
        "file": "/var/www/html/nextcloud/3rdparty/guzzlehttp/guzzle/src/Middleware.php",
        "line": 31,
        "function": "__invoke",
        "class": "GuzzleHttp\\PrepareBodyMiddleware",
        "type": "->"
      },
      {
        "file": "/var/www/html/nextcloud/3rdparty/guzzlehttp/guzzle/src/RedirectMiddleware.php",
        "line": 71,
        "function": "{closure:{closure:GuzzleHttp\\Middleware::cookies():28}:29}",
        "class": "GuzzleHttp\\Middleware",
        "type": "::",
        "args": [
          "*** sensitive parameters replaced ***"
        ]
      },
      {
        "file": "/var/www/html/nextcloud/3rdparty/guzzlehttp/guzzle/src/Middleware.php",
        "line": 66,
        "function": "__invoke",
        "class": "GuzzleHttp\\RedirectMiddleware",
        "type": "->"
      },
      {
        "file": "/var/www/html/nextcloud/3rdparty/guzzlehttp/guzzle/src/HandlerStack.php",
        "line": 75,
        "function": "{closure:{closure:GuzzleHttp\\Middleware::httpErrors():60}:61}",
        "class": "GuzzleHttp\\Middleware",
        "type": "::",
        "args": [
          "*** sensitive parameters replaced ***"
        ]
      },
      {
        "file": "/var/www/html/nextcloud/3rdparty/guzzlehttp/guzzle/src/Client.php",
        "line": 333,
        "function": "__invoke",
        "class": "GuzzleHttp\\HandlerStack",
        "type": "->"
      },
      {
        "file": "/var/www/html/nextcloud/3rdparty/guzzlehttp/guzzle/src/Client.php",
        "line": 169,
        "function": "transfer",
        "class": "GuzzleHttp\\Client",
        "type": "->"
      },
      {
        "file": "/var/www/html/nextcloud/3rdparty/guzzlehttp/guzzle/src/Client.php",
        "line": 189,
        "function": "requestAsync",
        "class": "GuzzleHttp\\Client",
        "type": "->",
        "args": [
          "*** sensitive parameters replaced ***"
        ]
      },
      {
        "file": "/var/www/html/nextcloud/lib/private/Http/Client/Client.php",
        "line": 290,
        "function": "request",
        "class": "GuzzleHttp\\Client",
        "type": "->"
      },
      {
        "file": "/var/www/html/nextcloud/apps/richdocuments/lib/Service/RemoteService.php",
        "line": 94,
        "function": "post",
        "class": "OC\\Http\\Client\\Client",
        "type": "->",
        "args": [
          "*** sensitive parameters replaced ***"
        ]
      },
      {
        "file": "/var/www/html/nextcloud/apps/richdocuments/lib/Service/RemoteService.php",
        "line": 68,
        "function": "convertTo",
        "class": "OCA\\Richdocuments\\Service\\RemoteService",
        "type": "->"
      },
      {
        "file": "/var/www/html/nextcloud/apps/richdocuments/lib/Preview/Office.php",
        "line": 45,
        "function": "convertFileTo",
        "class": "OCA\\Richdocuments\\Service\\RemoteService",
        "type": "->"
      },
      {
        "file": "/var/www/html/nextcloud/lib/private/Preview/GeneratorHelper.php",
        "line": 25,
        "function": "getThumbnail",
        "class": "OCA\\Richdocuments\\Preview\\Office",
        "type": "->"
      },
      {
        "file": "/var/www/html/nextcloud/lib/private/Preview/Generator.php",
        "line": 381,
        "function": "getThumbnail",
        "class": "OC\\Preview\\GeneratorHelper",
        "type": "->"
      },
      {
        "file": "/var/www/html/nextcloud/lib/private/Preview/Generator.php",
        "line": 335,
        "function": "generateProviderPreview",
        "class": "OC\\Preview\\Generator",
        "type": "->"
      },
      {
        "file": "/var/www/html/nextcloud/lib/private/Preview/Generator.php",
        "line": 126,
        "function": "getMaxPreview",
        "class": "OC\\Preview\\Generator",
        "type": "->"
      },
      {
        "file": "/var/www/html/nextcloud/lib/private/Preview/Generator.php",
        "line": 94,
        "function": "generatePreviews",
        "class": "OC\\Preview\\Generator",
        "type": "->"
      },
      {
        "file": "/var/www/html/nextcloud/lib/private/PreviewManager.php",
        "line": 166,
        "function": "getPreview",
        "class": "OC\\Preview\\Generator",
        "type": "->"
      },
      {
        "file": "/var/www/html/nextcloud/core/Controller/PreviewController.php",
        "line": 166,
        "function": "getPreview",
        "class": "OC\\PreviewManager",
        "type": "->"
      },
      {
        "file": "/var/www/html/nextcloud/core/Controller/PreviewController.php",
        "line": 128,
        "function": "fetchPreview",
        "class": "OC\\Core\\Controller\\PreviewController",
        "type": "->"
      },
      {
        "file": "/var/www/html/nextcloud/lib/private/AppFramework/Http/Dispatcher.php",
        "line": 205,
        "function": "getPreviewByFileId",
        "class": "OC\\Core\\Controller\\PreviewController",
        "type": "->"
      },
      {
        "file": "/var/www/html/nextcloud/lib/private/AppFramework/Http/Dispatcher.php",
        "line": 118,
        "function": "executeController",
        "class": "OC\\AppFramework\\Http\\Dispatcher",
        "type": "->"
      },
      {
        "file": "/var/www/html/nextcloud/lib/private/AppFramework/App.php",
        "line": 153,
        "function": "dispatch",
        "class": "OC\\AppFramework\\Http\\Dispatcher",
        "type": "->"
      },
      {
        "file": "/var/www/html/nextcloud/lib/private/Route/Router.php",
        "line": 321,
        "function": "main",
        "class": "OC\\AppFramework\\App",
        "type": "::"
      },
      {
        "file": "/var/www/html/nextcloud/lib/base.php",
        "line": 1155,
        "function": "match",
        "class": "OC\\Route\\Router",
        "type": "->"
      },
      {
        "file": "/var/www/html/nextcloud/index.php",
        "line": 25,
        "function": "handleRequest",
        "class": "OC",
        "type": "::"
      }
    ],
    "File": "/var/www/html/nextcloud/3rdparty/guzzlehttp/guzzle/src/Handler/CurlFactory.php",
    "Line": 277,
    "message": "Failed to convert preview: cURL error 28: Operation timed out after 5001 milliseconds with 0 bytes received (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for https://************/apps/richdocumentscode/proxy.php?req=/cool/convert-to/png",
    "exception": "{\"class\":\"GuzzleHttp\\Exception\\ConnectException\",\"message\":\"cURL error 28: Operation timed out after 5001 milliseconds with 0 bytes received (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for https://************/apps/richdocumentscode/proxy.php?req=/cool/convert-to/png\",\"code\":0,\"file\":\"/var/www/html/nextcloud/3rdparty/guzzlehttp/guzzle/src/Handler/CurlFactory.php:277\",\"trace\":\"#0 /var/www/html/nextcloud/3rdparty/guzzlehttp/guzzle/src/Handler/CurlFactory.php(207): GuzzleHttp\\Handler\\CurlFactory::createRejection()\\n#1 /var/www/html/nextcloud/3rdparty/guzzlehttp/guzzle/src/Handler/CurlFactory.php(159): GuzzleHttp\\Handler\\CurlFactory::finishError()\\n#2 /var/www/html/nextcloud/3rdparty/guzzlehttp/guzzle/src/Handler/CurlHandler.php(47): GuzzleHttp\\Handler\\CurlFactory::finish()\\n#3 /var/www/html/nextcloud/3rdparty/guzzlehttp/guzzle/src/Middleware.php(142): GuzzleHttp\\Handler\\CurlHandler->__invoke()\\n#4 /var/www/html/nextcloud/lib/private/Http/Client/DnsPinMiddleware.php(110): GuzzleHttp\\Middleware::{closure:{closure:GuzzleHttp\\Middleware::tap():137}:138}()\\n#5 /var/www/html/nextcloud/3rdparty/guzzlehttp/guzzle/src/PrepareBodyMiddleware.php(64): OC\\Http\\Client\\DnsPinMiddleware->{closure:{closure:OC\\Http\\Client\\DnsPinMiddleware::addDnsPinning():104}:105}()\\n#6 /var/www/html/nextcloud/3rdparty/guzzlehttp/guzzle/src/Middleware.php(31): GuzzleHttp\\PrepareBodyMiddleware->__invoke()\\n#7 /var/www/html/nextcloud/3rdparty/guzzlehttp/guzzle/src/RedirectMiddleware.php(71): GuzzleHttp\\Middleware::{closure:{closure:GuzzleHttp\\Middleware::cookies():28}:29}()\\n#8 /var/www/html/nextcloud/3rdparty/guzzlehttp/guzzle/src/Middleware.php(66): GuzzleHttp\\RedirectMiddleware->__invoke()\\n#9 /var/www/html/nextcloud/3rdparty/guzzlehttp/guzzle/src/HandlerStack.php(75): GuzzleHttp\\Middleware::{closure:{closure:GuzzleHttp\\Middleware::httpErrors():60}:61}()\\n#10 /var/www/html/nextcloud/3rdparty/guzzlehttp/guzzle/src/Client.php(333): GuzzleHttp\\HandlerStack->__invoke()\\n#11 /var/www/html/nextcloud/3rdparty/guzzlehttp/guzzle/src/Client.php(169): GuzzleHttp\\Client->transfer()\\n#12 /var/www/html/nextcloud/3rdparty/guzzlehttp/guzzle/src/Client.php(189): GuzzleHttp\\Client->requestAsync()\\n#13 /var/www/html/nextcloud/lib/private/Http/Client/Client.php(290): GuzzleHttp\\Client->request()\\n#14 /var/www/html/nextcloud/apps/richdocuments/lib/Service/RemoteService.php(94): OC\\Http\\Client\\Client->post()\\n#15 /var/www/html/nextcloud/apps/richdocuments/lib/Service/RemoteService.php(68): OCA\\Richdocuments\\Service\\RemoteService->convertTo()\\n#16 /var/www/html/nextcloud/apps/richdocuments/lib/Preview/Office.php(45): OCA\\Richdocuments\\Service\\RemoteService->convertFileTo()\\n#17 /var/www/html/nextcloud/lib/private/Preview/GeneratorHelper.php(25): OCA\\Richdocuments\\Preview\\Office->getThumbnail()\\n#18 /var/www/html/nextcloud/lib/private/Preview/Generator.php(381): OC\\Preview\\GeneratorHelper->getThumbnail()\\n#19 /var/www/html/nextcloud/lib/private/Preview/Generator.php(335): OC\\Preview\\Generator->generateProviderPreview()\\n#20 /var/www/html/nextcloud/lib/private/Preview/Generator.php(126): OC\\Preview\\Generator->getMaxPreview()\\n#21 /var/www/html/nextcloud/lib/private/Preview/Generator.php(94): OC\\Preview\\Generator->generatePreviews()\\n#22 /var/www/html/nextcloud/lib/private/PreviewManager.php(166): OC\\Preview\\Generator->getPreview()\\n#23 /var/www/html/nextcloud/core/Controller/PreviewController.php(166): OC\\PreviewManager->getPreview()\\n#24 /var/www/html/nextcloud/core/Controller/PreviewController.php(128): OC\\Core\\Controller\\PreviewController->fetchPreview()\\n#25 /var/www/html/nextcloud/lib/private/AppFramework/Http/Dispatcher.php(205): OC\\Core\\Controller\\PreviewController->getPreviewByFileId()\\n#26 /var/www/html/nextcloud/lib/private/AppFramework/Http/Dispatcher.php(118): OC\\AppFramework\\Http\\Dispatcher->executeController()\\n#27 /var/www/html/nextcloud/lib/private/AppFramework/App.php(153): OC\\AppFramework\\Http\\Dispatcher->dispatch()\\n#28 /var/www/html/nextcloud/lib/private/Route/Router.php(321): OC\\AppFramework\\App::main()\\n#29 /var/www/html/nextcloud/lib/base.php(1155): OC\\Route\\Router->match()\\n#30 /var/www/html/nextcloud/index.php(25): OC::handleRequest()\\n#31 {main}\"}",
    "CustomMessage": "Failed to convert preview: cURL error 28: Operation timed out after 5001 milliseconds with 0 bytes received (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for https://************/apps/richdocumentscode/proxy.php?req=/cool/convert-to/png"
  },
  "id": "69bbb811c3b5c"
}

End user don’t see any error and the document can be view and edit without problem.
Any Idea How to fix it and don’t fill the log with error?

Best Regards