I get an 404 after adding 4 lines in config.php, even after I removed them

In the last three entries of the Nextcloud log you posted. Didn’t you even read those log entries thoroughly?

Here are those lines in JSON-Pretty, which you get when you pipe it throug the command-line JSON processor → jq:

{
  "reqId": "yfZFuP14xexJkfr4nZvL",
  "level": 3,
  "time": "2025-01-20T09:00:04+00:00",
  "remoteAddr": "",
  "user": "--",
  "app": "richdocuments",
  "method": "",
  "url": "--",
  "message": "Failed to fetch discovery: Client error: `GET http://cloud.privetdrive.net/apps/richdocumentscode/proxy.php?req=/hosting/discovery` resulted in a `404 Not Found` response:\n<html>\r\n<head><title>404 Not Found</title></head>\r\n<body>\r\n<center><h1>404 Not Found</h1></center>\r\n<hr><center>nginx</c (truncated...)\n",
  "userAgent": "--",
  "version": "30.0.5.1",
  "exception": {
    "Exception": "GuzzleHttp\\Exception\\ClientException",
    "Message": "Client error: `GET http://cloud.privetdrive.net/apps/richdocumentscode/proxy.php?req=/hosting/discovery` resulted in a `404 Not Found` response:\n<html>\r\n<head><title>404 Not Found</title></head>\r\n<body>\r\n<center><h1>404 Not Found</h1></center>\r\n<hr><center>nginx</c (truncated...)\n",
    "Code": 404,
    "Trace": [
      {
        "file": "/app/www/public/3rdparty/guzzlehttp/guzzle/src/Middleware.php",
        "line": 72,
        "function": "create",
        "class": "GuzzleHttp\\Exception\\RequestException",
        "type": "::",
        "args": [
          "*** sensitive parameters replaced ***"
        ]
      },
      {
        "file": "/app/www/public/3rdparty/guzzlehttp/promises/src/Promise.php",
        "line": 209,
        "function": "GuzzleHttp\\{closure}",
        "class": "GuzzleHttp\\Middleware",
        "type": "::",
        "args": [
          "*** sensitive parameters replaced ***"
        ]
      },
      {
        "file": "/app/www/public/3rdparty/guzzlehttp/promises/src/Promise.php",
        "line": 158,
        "function": "callHandler",
        "class": "GuzzleHttp\\Promise\\Promise",
        "type": "::"
      },
      {
        "file": "/app/www/public/3rdparty/guzzlehttp/promises/src/TaskQueue.php",
        "line": 52,
        "function": "GuzzleHttp\\Promise\\{closure}",
        "class": "GuzzleHttp\\Promise\\Promise",
        "type": "::",
        "args": [
          "*** sensitive parameters replaced ***"
        ]
      },
      {
        "file": "/app/www/public/3rdparty/guzzlehttp/promises/src/Promise.php",
        "line": 251,
        "function": "run",
        "class": "GuzzleHttp\\Promise\\TaskQueue",
        "type": "->"
      },
      {
        "file": "/app/www/public/3rdparty/guzzlehttp/promises/src/Promise.php",
        "line": 227,
        "function": "invokeWaitFn",
        "class": "GuzzleHttp\\Promise\\Promise",
        "type": "->"
      },
      {
        "file": "/app/www/public/3rdparty/guzzlehttp/promises/src/Promise.php",
        "line": 272,
        "function": "waitIfPending",
        "class": "GuzzleHttp\\Promise\\Promise",
        "type": "->"
      },
      {
        "file": "/app/www/public/3rdparty/guzzlehttp/promises/src/Promise.php",
        "line": 229,
        "function": "invokeWaitList",
        "class": "GuzzleHttp\\Promise\\Promise",
        "type": "->"
      },
      {
        "file": "/app/www/public/3rdparty/guzzlehttp/promises/src/Promise.php",
        "line": 69,
        "function": "waitIfPending",
        "class": "GuzzleHttp\\Promise\\Promise",
        "type": "->"
      },
      {
        "file": "/app/www/public/3rdparty/guzzlehttp/guzzle/src/Client.php",
        "line": 189,
        "function": "wait",
        "class": "GuzzleHttp\\Promise\\Promise",
        "type": "->"
      },
      {
        "file": "/app/www/public/lib/private/Http/Client/Client.php",
        "line": 205,
        "function": "request",
        "class": "GuzzleHttp\\Client",
        "type": "->"
      },
      {
        "file": "/config/www/nextcloud/apps/richdocuments/lib/Service/DiscoveryService.php",
        "line": 59,
        "function": "get",
        "class": "OC\\Http\\Client\\Client",
        "type": "->",
        "args": [
          "*** sensitive parameters replaced ***"
        ]
      },
      {
        "file": "/config/www/nextcloud/apps/richdocuments/lib/Service/CachedRequestService.php",
        "line": 74,
        "function": "sendRequest",
        "class": "OCA\\Richdocuments\\Service\\DiscoveryService",
        "type": "->"
      },
      {
        "file": "/config/www/nextcloud/apps/richdocuments/lib/Backgroundjobs/ObtainCapabilities.php",
        "line": 41,
        "function": "fetch",
        "class": "OCA\\Richdocuments\\Service\\CachedRequestService",
        "type": "->"
      },
      {
        "file": "/app/www/public/lib/public/BackgroundJob/Job.php",
        "line": 61,
        "function": "run",
        "class": "OCA\\Richdocuments\\Backgroundjobs\\ObtainCapabilities",
        "type": "->"
      },
      {
        "file": "/app/www/public/lib/public/BackgroundJob/TimedJob.php",
        "line": 88,
        "function": "start",
        "class": "OCP\\BackgroundJob\\Job",
        "type": "->"
      },
      {
        "file": "/app/www/public/lib/public/BackgroundJob/TimedJob.php",
        "line": 75,
        "function": "start",
        "class": "OCP\\BackgroundJob\\TimedJob",
        "type": "->"
      },
      {
        "file": "/app/www/public/cron.php",
        "line": 162,
        "function": "execute",
        "class": "OCP\\BackgroundJob\\TimedJob",
        "type": "->"
      }
    ],
    "File": "/app/www/public/3rdparty/guzzlehttp/guzzle/src/Exception/RequestException.php",
    "Line": 113,
    "message": "Failed to fetch discovery: Client error: `GET http://cloud.privetdrive.net/apps/richdocumentscode/proxy.php?req=/hosting/discovery` resulted in a `404 Not Found` response:\n<html>\r\n<head><title>404 Not Found</title></head>\r\n<body>\r\n<center><h1>404 Not Found</h1></center>\r\n<hr><center>nginx</c (truncated...)\n",
    "exception": {},
    "CustomMessage": "Failed to fetch discovery: Client error: `GET http://cloud.privetdrive.net/apps/richdocumentscode/proxy.php?req=/hosting/discovery` resulted in a `404 Not Found` response:\n<html>\r\n<head><title>404 Not Found</title></head>\r\n<body>\r\n<center><h1>404 Not Found</h1></center>\r\n<hr><center>nginx</c (truncated...)\n"
  }
}
{
  "reqId": "pcnkuvf6ZlluWQa1luvn",
  "level": 3,
  "time": "2025-01-20T10:05:03+00:00",
  "remoteAddr": "",
  "user": "--",
  "app": "richdocuments",
  "method": "",
  "url": "--",
  "message": "Failed to fetch capabilities: Client error: `GET http://cloud.privetdrive.net/apps/richdocumentscode/proxy.php?req=/hosting/capabilities` resulted in a `404 Not Found` response:\n404 page not found\n\n",
  "userAgent": "--",
  "version": "30.0.5.1",
  "exception": {
    "Exception": "GuzzleHttp\\Exception\\ClientException",
    "Message": "Client error: `GET http://cloud.privetdrive.net/apps/richdocumentscode/proxy.php?req=/hosting/capabilities` resulted in a `404 Not Found` response:\n404 page not found\n\n",
    "Code": 404,
    "Trace": [
      {
        "file": "/app/www/public/3rdparty/guzzlehttp/guzzle/src/Middleware.php",
        "line": 72,
        "function": "create",
        "class": "GuzzleHttp\\Exception\\RequestException",
        "type": "::",
        "args": [
          "*** sensitive parameters replaced ***"
        ]
      },
      {
        "file": "/app/www/public/3rdparty/guzzlehttp/promises/src/Promise.php",
        "line": 209,
        "function": "GuzzleHttp\\{closure}",
        "class": "GuzzleHttp\\Middleware",
        "type": "::",
        "args": [
          "*** sensitive parameters replaced ***"
        ]
      },
      {
        "file": "/app/www/public/3rdparty/guzzlehttp/promises/src/Promise.php",
        "line": 158,
        "function": "callHandler",
        "class": "GuzzleHttp\\Promise\\Promise",
        "type": "::"
      },
      {
        "file": "/app/www/public/3rdparty/guzzlehttp/promises/src/TaskQueue.php",
        "line": 52,
        "function": "GuzzleHttp\\Promise\\{closure}",
        "class": "GuzzleHttp\\Promise\\Promise",
        "type": "::",
        "args": [
          "*** sensitive parameters replaced ***"
        ]
      },
      {
        "file": "/app/www/public/3rdparty/guzzlehttp/promises/src/Promise.php",
        "line": 251,
        "function": "run",
        "class": "GuzzleHttp\\Promise\\TaskQueue",
        "type": "->"
      },
      {
        "file": "/app/www/public/3rdparty/guzzlehttp/promises/src/Promise.php",
        "line": 227,
        "function": "invokeWaitFn",
        "class": "GuzzleHttp\\Promise\\Promise",
        "type": "->"
      },
      {
        "file": "/app/www/public/3rdparty/guzzlehttp/promises/src/Promise.php",
        "line": 272,
        "function": "waitIfPending",
        "class": "GuzzleHttp\\Promise\\Promise",
        "type": "->"
      },
      {
        "file": "/app/www/public/3rdparty/guzzlehttp/promises/src/Promise.php",
        "line": 229,
        "function": "invokeWaitList",
        "class": "GuzzleHttp\\Promise\\Promise",
        "type": "->"
      },
      {
        "file": "/app/www/public/3rdparty/guzzlehttp/promises/src/Promise.php",
        "line": 69,
        "function": "waitIfPending",
        "class": "GuzzleHttp\\Promise\\Promise",
        "type": "->"
      },
      {
        "file": "/app/www/public/3rdparty/guzzlehttp/guzzle/src/Client.php",
        "line": 189,
        "function": "wait",
        "class": "GuzzleHttp\\Promise\\Promise",
        "type": "->"
      },
      {
        "file": "/app/www/public/lib/private/Http/Client/Client.php",
        "line": 205,
        "function": "request",
        "class": "GuzzleHttp\\Client",
        "type": "->"
      },
      {
        "file": "/config/www/nextcloud/apps/richdocuments/lib/Service/CapabilitiesService.php",
        "line": 132,
        "function": "get",
        "class": "OC\\Http\\Client\\Client",
        "type": "->",
        "args": [
          "*** sensitive parameters replaced ***"
        ]
      },
      {
        "file": "/config/www/nextcloud/apps/richdocuments/lib/Service/CachedRequestService.php",
        "line": 74,
        "function": "sendRequest",
        "class": "OCA\\Richdocuments\\Service\\CapabilitiesService",
        "type": "->"
      },
      {
        "file": "/config/www/nextcloud/apps/richdocuments/lib/Backgroundjobs/ObtainCapabilities.php",
        "line": 35,
        "function": "fetch",
        "class": "OCA\\Richdocuments\\Service\\CachedRequestService",
        "type": "->"
      },
      {
        "file": "/app/www/public/lib/public/BackgroundJob/Job.php",
        "line": 61,
        "function": "run",
        "class": "OCA\\Richdocuments\\Backgroundjobs\\ObtainCapabilities",
        "type": "->"
      },
      {
        "file": "/app/www/public/lib/public/BackgroundJob/TimedJob.php",
        "line": 88,
        "function": "start",
        "class": "OCP\\BackgroundJob\\Job",
        "type": "->"
      },
      {
        "file": "/app/www/public/lib/public/BackgroundJob/TimedJob.php",
        "line": 75,
        "function": "start",
        "class": "OCP\\BackgroundJob\\TimedJob",
        "type": "->"
      },
      {
        "file": "/app/www/public/cron.php",
        "line": 162,
        "function": "execute",
        "class": "OCP\\BackgroundJob\\TimedJob",
        "type": "->"
      }
    ],
    "File": "/app/www/public/3rdparty/guzzlehttp/guzzle/src/Exception/RequestException.php",
    "Line": 113,
    "message": "Failed to fetch capabilities: Client error: `GET http://cloud.privetdrive.net/apps/richdocumentscode/proxy.php?req=/hosting/capabilities` resulted in a `404 Not Found` response:\n404 page not found\n\n",
    "exception": {},
    "CustomMessage": "Failed to fetch capabilities: Client error: `GET http://cloud.privetdrive.net/apps/richdocumentscode/proxy.php?req=/hosting/capabilities` resulted in a `404 Not Found` response:\n404 page not found\n\n"
  }
}
{
  "reqId": "pcnkuvf6ZlluWQa1luvn",
  "level": 3,
  "time": "2025-01-20T10:05:03+00:00",
  "remoteAddr": "",
  "user": "--",
  "app": "richdocuments",
  "method": "",
  "url": "--",
  "message": "Failed to fetch discovery: Client error: `GET http://cloud.privetdrive.net/apps/richdocumentscode/proxy.php?req=/hosting/discovery` resulted in a `404 Not Found` response:\n404 page not found\n\n",
  "userAgent": "--",
  "version": "30.0.5.1",
  "exception": {
    "Exception": "GuzzleHttp\\Exception\\ClientException",
    "Message": "Client error: `GET http://cloud.privetdrive.net/apps/richdocumentscode/proxy.php?req=/hosting/discovery` resulted in a `404 Not Found` response:\n404 page not found\n\n",
    "Code": 404,
    "Trace": [
      {
        "file": "/app/www/public/3rdparty/guzzlehttp/guzzle/src/Middleware.php",
        "line": 72,
        "function": "create",
        "class": "GuzzleHttp\\Exception\\RequestException",
        "type": "::",
        "args": [
          "*** sensitive parameters replaced ***"
        ]
      },
      {
        "file": "/app/www/public/3rdparty/guzzlehttp/promises/src/Promise.php",
        "line": 209,
        "function": "GuzzleHttp\\{closure}",
        "class": "GuzzleHttp\\Middleware",
        "type": "::",
        "args": [
          "*** sensitive parameters replaced ***"
        ]
      },
      {
        "file": "/app/www/public/3rdparty/guzzlehttp/promises/src/Promise.php",
        "line": 158,
        "function": "callHandler",
        "class": "GuzzleHttp\\Promise\\Promise",
        "type": "::"
      },
      {
        "file": "/app/www/public/3rdparty/guzzlehttp/promises/src/TaskQueue.php",
        "line": 52,
        "function": "GuzzleHttp\\Promise\\{closure}",
        "class": "GuzzleHttp\\Promise\\Promise",
        "type": "::",
        "args": [
          "*** sensitive parameters replaced ***"
        ]
      },
      {
        "file": "/app/www/public/3rdparty/guzzlehttp/promises/src/Promise.php",
        "line": 251,
        "function": "run",
        "class": "GuzzleHttp\\Promise\\TaskQueue",
        "type": "->"
      },
      {
        "file": "/app/www/public/3rdparty/guzzlehttp/promises/src/Promise.php",
        "line": 227,
        "function": "invokeWaitFn",
        "class": "GuzzleHttp\\Promise\\Promise",
        "type": "->"
      },
      {
        "file": "/app/www/public/3rdparty/guzzlehttp/promises/src/Promise.php",
        "line": 272,
        "function": "waitIfPending",
        "class": "GuzzleHttp\\Promise\\Promise",
        "type": "->"
      },
      {
        "file": "/app/www/public/3rdparty/guzzlehttp/promises/src/Promise.php",
        "line": 229,
        "function": "invokeWaitList",
        "class": "GuzzleHttp\\Promise\\Promise",
        "type": "->"
      },
      {
        "file": "/app/www/public/3rdparty/guzzlehttp/promises/src/Promise.php",
        "line": 69,
        "function": "waitIfPending",
        "class": "GuzzleHttp\\Promise\\Promise",
        "type": "->"
      },
      {
        "file": "/app/www/public/3rdparty/guzzlehttp/guzzle/src/Client.php",
        "line": 189,
        "function": "wait",
        "class": "GuzzleHttp\\Promise\\Promise",
        "type": "->"
      },
      {
        "file": "/app/www/public/lib/private/Http/Client/Client.php",
        "line": 205,
        "function": "request",
        "class": "GuzzleHttp\\Client",
        "type": "->"
      },
      {
        "file": "/config/www/nextcloud/apps/richdocuments/lib/Service/DiscoveryService.php",
        "line": 59,
        "function": "get",
        "class": "OC\\Http\\Client\\Client",
        "type": "->",
        "args": [
          "*** sensitive parameters replaced ***"
        ]
      },
      {
        "file": "/config/www/nextcloud/apps/richdocuments/lib/Service/CachedRequestService.php",
        "line": 74,
        "function": "sendRequest",
        "class": "OCA\\Richdocuments\\Service\\DiscoveryService",
        "type": "->"
      },
      {
        "file": "/config/www/nextcloud/apps/richdocuments/lib/Backgroundjobs/ObtainCapabilities.php",
        "line": 41,
        "function": "fetch",
        "class": "OCA\\Richdocuments\\Service\\CachedRequestService",
        "type": "->"
      },
      {
        "file": "/app/www/public/lib/public/BackgroundJob/Job.php",
        "line": 61,
        "function": "run",
        "class": "OCA\\Richdocuments\\Backgroundjobs\\ObtainCapabilities",
        "type": "->"
      },
      {
        "file": "/app/www/public/lib/public/BackgroundJob/TimedJob.php",
        "line": 88,
        "function": "start",
        "class": "OCP\\BackgroundJob\\Job",
        "type": "->"
      },
      {
        "file": "/app/www/public/lib/public/BackgroundJob/TimedJob.php",
        "line": 75,
        "function": "start",
        "class": "OCP\\BackgroundJob\\TimedJob",
        "type": "->"
      },
      {
        "file": "/app/www/public/cron.php",
        "line": 162,
        "function": "execute",
        "class": "OCP\\BackgroundJob\\TimedJob",
        "type": "->"
      }
    ],
    "File": "/app/www/public/3rdparty/guzzlehttp/guzzle/src/Exception/RequestException.php",
    "Line": 113,
    "message": "Failed to fetch discovery: Client error: `GET http://cloud.privetdrive.net/apps/richdocumentscode/proxy.php?req=/hosting/discovery` resulted in a `404 Not Found` response:\n404 page not found\n\n",
    "exception": {},
    "CustomMessage": "Failed to fetch discovery: Client error: `GET http://cloud.privetdrive.net/apps/richdocumentscode/proxy.php?req=/hosting/discovery` resulted in a `404 Not Found` response:\n404 page not found\n\n"
  }
}

You should always → check log entries first ← . They can contain important clues about possible causes.

h.t.h.


ernolf

1 Like