Problems using Built-in CODE in Nextcloud

Nextcloud version: 30.0.2

When I attempt to open/edit a document on any web browser nextcloud will remain on the loading window until I press cancel
However, this will not happen for some reason when I use the nextcloud app on Android. I will be able to open and edit documents just fine.

When I goto the DevTools window in chrome I will get an error on the console: proxy.php?status error with collabora.js:40 being the initiator.

As far as WOPI requests go, I have my reverse proxy, localhost, and nextclouds IP addresses listed.

If I go to my logs in Nextcloud, I also see an error related to code/richdocuments:

Client error: `POST http://cloud.address.ddns.net/custom_apps/richdocumentscode/proxy.php?req=/cool/convert-to/png` resulted in a `400 Bad Request` response```

{
  "reqId": "HvCzO66qICpK4PgjenU2",
  "level": 3,
  "time": "2024-12-02T20:09:41+00:00",
  "remoteAddr": "10.0.0.90",
  "user": "Hellman_x",
  "app": "richdocuments",
  "method": "GET",
  "url": "/core/preview?fileId=37984&x=3440&y=1440&a=true&v=a68307",
  "message": "Failed to convert preview: Client error: `POST http://cloud.address.ddns.net/custom_apps/richdocumentscode/proxy.php?req=/cool/convert-to/png` resulted in a `400 Bad Request` response",
  "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36",
  "version": "30.0.2.2",
  "exception": {
    "Exception": "GuzzleHttp\\Exception\\ClientException",
    "Message": "Client error: `POST http://cloud.address.ddns.net/custom_apps/richdocumentscode/proxy.php?req=/cool/convert-to/png` resulted in a `400 Bad Request` response",
    "Code": 400,
    "Trace": [
      {
        "file": "/var/www/html/3rdparty/guzzlehttp/guzzle/src/Middleware.php",
        "line": 72,
        "function": "create",
        "class": "GuzzleHttp\\Exception\\RequestException",
        "type": "::",
        "args": [
          "*** sensitive parameters replaced ***"
        ]
      },
      {
        "file": "/var/www/html/3rdparty/guzzlehttp/promises/src/Promise.php",
        "line": 209,
        "function": "GuzzleHttp\\{closure}",
        "class": "GuzzleHttp\\Middleware",
        "type": "::",
        "args": [
          "*** sensitive parameters replaced ***"
        ]
      },
      {
        "file": "/var/www/html/3rdparty/guzzlehttp/promises/src/Promise.php",
        "line": 158,
        "function": "callHandler",
        "class": "GuzzleHttp\\Promise\\Promise",
        "type": "::",
        "args": [
          1,
          "*** sensitive parameters replaced ***",
          "*** sensitive parameters replaced ***"
        ]
      },
      {
        "file": "/var/www/html/3rdparty/guzzlehttp/promises/src/TaskQueue.php",
        "line": 52,
        "function": "GuzzleHttp\\Promise\\{closure}",
        "class": "GuzzleHttp\\Promise\\Promise",
        "type": "::",
        "args": [
          "*** sensitive parameters replaced ***"
        ]
      },
      {
        "file": "/var/www/html/3rdparty/guzzlehttp/promises/src/Promise.php",
        "line": 251,
        "function": "run",
        "class": "GuzzleHttp\\Promise\\TaskQueue",
        "type": "->",
        "args": [
          true
        ]
      },
      {
        "file": "/var/www/html/3rdparty/guzzlehttp/promises/src/Promise.php",
        "line": 227,
        "function": "invokeWaitFn",
        "class": "GuzzleHttp\\Promise\\Promise",
        "type": "->",
        "args": []
      },
      {
        "file": "/var/www/html/3rdparty/guzzlehttp/promises/src/Promise.php",
        "line": 272,
        "function": "waitIfPending",
        "class": "GuzzleHttp\\Promise\\Promise",
        "type": "->",
        "args": []
      },
      {
        "file": "/var/www/html/3rdparty/guzzlehttp/promises/src/Promise.php",
        "line": 229,
        "function": "invokeWaitList",
        "class": "GuzzleHttp\\Promise\\Promise",
        "type": "->",
        "args": []
      },
      {
        "file": "/var/www/html/3rdparty/guzzlehttp/promises/src/Promise.php",
        "line": 69,
        "function": "waitIfPending",
        "class": "GuzzleHttp\\Promise\\Promise",
        "type": "->",
        "args": []
      },
      {
        "file": "/var/www/html/3rdparty/guzzlehttp/guzzle/src/Client.php",
        "line": 189,
        "function": "wait",
        "class": "GuzzleHttp\\Promise\\Promise",
        "type": "->",
        "args": []
      },
      {
        "file": "/var/www/html/lib/private/Http/Client/Client.php",
        "line": 276,
        "function": "request",
        "class": "GuzzleHttp\\Client",
        "type": "->",
        "args": [
          "post",
          "*** sensitive parameters replaced ***",
          {
            "0": "And 2 more entries, set log level to debug to see all entries",
            "verify": "/var/www/html/resources/config/ca-bundle.crt",
            "timeout": 5,
            "nextcloud": {
              "allow_local_address": true
            },
            "expect": false,
            "multipart": [
              {
                "name": "Test.docx",
                "contents": null
              }
            ]
          }
        ]
      },
      {
        "file": "/var/www/html/custom_apps/richdocuments/lib/Service/RemoteService.php",
        "line": 92,
        "function": "post",
        "class": "OC\\Http\\Client\\Client",
        "type": "->",
        "args": [
          "*** sensitive parameters replaced ***"
        ]
      },
      {
        "file": "/var/www/html/custom_apps/richdocuments/lib/Service/RemoteService.php",
        "line": 72,
        "function": "convertTo",
        "class": "OCA\\Richdocuments\\Service\\RemoteService",
        "type": "->",
        "args": [
          "Test.docx",
          null,
          "png"
        ]
      },
      {
        "file": "/var/www/html/custom_apps/richdocuments/lib/Preview/Office.php",
        "line": 41,
        "function": "convertFileTo",
        "class": "OCA\\Richdocuments\\Service\\RemoteService",
        "type": "->",
        "args": [
          {
            "__class__": "OC\\Files\\Node\\File"
          },
          "png"
        ]
      },
      {
        "file": "/var/www/html/lib/private/Preview/GeneratorHelper.php",
        "line": 44,
        "function": "getThumbnail",
        "class": "OCA\\Richdocuments\\Preview\\Office",
        "type": "->",
        "args": [
          {
            "__class__": "OC\\Files\\Node\\File"
          },
          4096,
          4096
        ]
      },
      {
        "file": "/var/www/html/lib/private/Preview/Generator.php",
        "line": 337,
        "function": "getThumbnail",
        "class": "OC\\Preview\\GeneratorHelper",
        "type": "->",
        "args": [
          {
            "__class__": "OCA\\Richdocuments\\Preview\\OOXML"
          },
          {
            "__class__": "OC\\Files\\Node\\File"
          },
          4096,
          4096
        ]
      },
      {
        "file": "/var/www/html/lib/private/Preview/Generator.php",
        "line": 313,
        "function": "generateProviderPreview",
        "class": "OC\\Preview\\Generator",
        "type": "->",
        "args": [
          {
            "__class__": "OC\\Files\\SimpleFS\\SimpleFolder"
          },
          {
            "__class__": "OC\\Files\\Node\\File"
          },
          4096,
          4096,
          false,
          true,
          "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
          ""
        ]
      },
      {
        "file": "/var/www/html/lib/private/Preview/Generator.php",
        "line": 119,
        "function": "getMaxPreview",
        "class": "OC\\Preview\\Generator",
        "type": "->",
        "args": [
          {
            "__class__": "OC\\Files\\SimpleFS\\SimpleFolder"
          },
          "*** sensitive parameters replaced ***",
          {
            "__class__": "OC\\Files\\Node\\File"
          },
          "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
          ""
        ]
      },
      {
        "file": "/var/www/html/lib/private/Preview/Generator.php",
        "line": 86,
        "function": "generatePreviews",
        "class": "OC\\Preview\\Generator",
        "type": "->",
        "args": [
          {
            "__class__": "OC\\Files\\Node\\File"
          },
          [
            {
              "width": 3440,
              "height": 1440,
              "crop": false,
              "mode": "fill"
            }
          ],
          "application/vnd.openxmlformats-officedocument.wordprocessingml.document"
        ]
      },
      {
        "file": "/var/www/html/lib/private/PreviewManager.php",
        "line": 167,
        "function": "getPreview",
        "class": "OC\\Preview\\Generator",
        "type": "->",
        "args": [
          {
            "__class__": "OC\\Files\\Node\\File"
          },
          3440,
          1440,
          false,
          "fill",
          "*** sensitive parameters replaced ***"
        ]
      },
      {
        "file": "/var/www/html/core/Controller/PreviewController.php",
        "line": 159,
        "function": "getPreview",
        "class": "OC\\PreviewManager",
        "type": "->",
        "args": [
          {
            "__class__": "OC\\Files\\Node\\File"
          },
          3440,
          1440,
          false,
          "fill"
        ]
      },
      {
        "file": "/var/www/html/core/Controller/PreviewController.php",
        "line": 123,
        "function": "fetchPreview",
        "class": "OC\\Core\\Controller\\PreviewController",
        "type": "->",
        "args": [
          {
            "__class__": "OC\\Files\\Node\\File"
          },
          3440,
          1440,
          true,
          true,
          "fill",
          false
        ]
      },
      {
        "file": "/var/www/html/lib/private/AppFramework/Http/Dispatcher.php",
        "line": 208,
        "function": "getPreviewByFileId",
        "class": "OC\\Core\\Controller\\PreviewController",
        "type": "->",
        "args": [
          37984,
          3440,
          1440,
          true,
          true,
          "fill",
          false
        ]
      },
      {
        "file": "/var/www/html/lib/private/AppFramework/Http/Dispatcher.php",
        "line": 114,
        "function": "executeController",
        "class": "OC\\AppFramework\\Http\\Dispatcher",
        "type": "->",
        "args": [
          {
            "__class__": "OC\\Core\\Controller\\PreviewController"
          },
          "getPreviewByFileId"
        ]
      },
      {
        "file": "/var/www/html/lib/private/AppFramework/App.php",
        "line": 161,
        "function": "dispatch",
        "class": "OC\\AppFramework\\Http\\Dispatcher",
        "type": "->",
        "args": [
          {
            "__class__": "OC\\Core\\Controller\\PreviewController"
          },
          "getPreviewByFileId"
        ]
      },
      {
        "file": "/var/www/html/lib/private/Route/Router.php",
        "line": 302,
        "function": "main",
        "class": "OC\\AppFramework\\App",
        "type": "::",
        "args": [
          "OC\\Core\\Controller\\PreviewController",
          "getPreviewByFileId",
          {
            "__class__": "OC\\AppFramework\\DependencyInjection\\DIContainer"
          },
          {
            "_route": "core.preview.getpreviewbyfileid"
          }
        ]
      },
      {
        "file": "/var/www/html/lib/base.php",
        "line": 1001,
        "function": "match",
        "class": "OC\\Route\\Router",
        "type": "->",
        "args": [
          "/core/preview"
        ]
      },
      {
        "file": "/var/www/html/index.php",
        "line": 24,
        "function": "handleRequest",
        "class": "OC",
        "type": "::",
        "args": []
      }
    ],
    "File": "/var/www/html/3rdparty/guzzlehttp/guzzle/src/Exception/RequestException.php",
    "Line": 113,
    "message": "Failed to convert preview: Client error: `POST http://cloud.address.ddns.net/custom_apps/richdocumentscode/proxy.php?req=/cool/convert-to/png` resulted in a `400 Bad Request` response",
    "exception": [],
    "CustomMessage": "Failed to convert preview: Client error: `POST http://cloud.address.ddns.net/custom_apps/richdocumentscode/proxy.php?req=/cool/convert-to/png` resulted in a `400 Bad Request` response"
  },
  "id": "674e1407dc4fd"
}

Operating system

Debian/Ubuntu

PHP engine version

PHP 8.2

Web server

Apache (supported)

Database engine version

SQlite

Is this bug present after an update or on a fresh install?

Fresh Nextcloud Server install

Are you using the Nextcloud Server Encryption module?

Encryption is Disabled

What user-backends are you using?

  • Default user-backend (database)

Configuration:

{
    "system": {
        "htaccess.RewriteBase": "\/",
        "memcache.local": "\\OC\\Memcache\\APCu",
        "apps_paths": [
            {
                "path": "\/var\/www\/html\/apps",
                "url": "\/apps",
                "writable": false
            },
            {
                "path": "\/var\/www\/html\/custom_apps",
                "url": "\/custom_apps",
                "writable": true
            }
        ],
        "upgrade.disable-web": true,
        "instanceid": "***REMOVED SENSITIVE VALUE***",
        "passwordsalt": "***REMOVED SENSITIVE VALUE***",
        "secret": "***REMOVED SENSITIVE VALUE***",
        "trusted_domains": [
            "cloud.address.ddns.net",
            "10.0.0.90"
        ],
        "datadirectory": "***REMOVED SENSITIVE VALUE***",
        "dbtype": "sqlite3",
        "version": "30.0.2.2",
        "overwrite.cli.url": "http:\/\/cloud.address.ddns.net",
        "installed": true,
        "overwriteprotocol": "https",
        "maintenance": false,
        "loglevel": 2
    }
}

App List:

Enabled:
  - activity: 3.0.0
  - app_api: 4.0.0
  - bruteforcesettings: 3.0.0
  - calendar: 5.0.6
  - circles: 30.0.0
  - cloud_federation_api: 1.13.0
  - comments: 1.20.1
  - contacts: 6.1.1
  - contactsinteraction: 1.11.0
  - dashboard: 7.10.0
  - dav: 1.31.1
  - federatedfilesharing: 1.20.0
  - federation: 1.20.0
  - files: 2.2.0
  - files_downloadlimit: 3.0.0
  - files_pdfviewer: 3.0.0
  - files_reminders: 1.3.0
  - files_sharing: 1.22.0
  - files_trashbin: 1.20.1
  - files_versions: 1.23.0
  - firstrunwizard: 3.0.0
  - logreader: 3.0.0
  - lookup_server_connector: 1.18.0
  - mail: 4.0.7
  - nextcloud_announcements: 2.0.0
  - notes: 4.11.0
  - notifications: 3.0.0
  - oauth2: 1.18.1
  - password_policy: 2.0.0
  - photos: 3.0.2
  - privacy: 2.0.0
  - provisioning_api: 1.20.0
  - recognize: 8.1.1
  - recommendations: 3.0.0
  - related_resources: 1.5.0
  - richdocuments: 8.5.2
  - richdocumentscode: 24.4.902
  - serverinfo: 2.0.0
  - settings: 1.13.0
  - sharebymail: 1.20.0
  - spreed: 20.0.2
  - support: 2.0.0
  - survey_client: 2.0.0
  - systemtags: 1.20.0
  - text: 4.1.0
  - theming: 2.5.0
  - twofactor_backupcodes: 1.19.0
  - updatenotification: 1.20.0
  - user_status: 1.10.0
  - viewer: 3.0.0
  - weather_status: 1.10.0
  - webhook_listeners: 1.1.0-dev
  - workflowengine: 2.12.0
Disabled:
  - admin_audit: 1.20.0
  - encryption: 2.18.0
  - files_external: 1.22.0
  - suspicious_login: 8.0.0
  - twofactor_nextcloud_notification: 4.0.0
  - twofactor_totp: 12.0.0-dev
  - user_ldap: 1.21.0

Signing Status:

Technical information
=====================
The following list covers which files have failed the integrity check. Please read
the previous linked documentation to learn more about the errors and how to fix
them.

Results
=======
- core
	- EXTRA_FILE
		- nextcloud-init-sync.lock

Raw output
==========
Array
(
    [core] => Array
        (
            [EXTRA_FILE] => Array
                (
                    [nextcloud-init-sync.lock] => Array
                        (
                            [expected] => 
                            [current] => cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e
                        )

                )

        )

)

What happens if you visit http://cloud.address.ddns.net/custom_apps/richdocumentscode/proxy.php?status from your web browser?

If OK. What happens if you visit that URL from your Nextcloud app container (i.e. using curl)?

{"status":"OK"} for both web browser and for curl on the app container

Maybe I should try submitting another bug report now that I have the proper information…

This topic was automatically closed after 90 days. New replies are no longer allowed.