RocketChat / RocketChat/Rocket.Chat

webdav upload failed

Open
#27,440 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
TypeScript
Stars
46.1k
Forks
13.9k
Avg merge
3d 3h
Merged PRs (30d)
130

Description

Description:
Steps to reproduce:

Set the file upload to webdav, and the webdav account password is completely correct. But the upload failed

Expected behavior:

success

Actual behavior:

Error: Request failed with status code 404 [ufs: cannot upload file]

Server Setup Information:
  • Version of Rocket.Chat Server: 4.6.2
  • Operating System: ubuntu 22.04
  • Deployment Method: snap
  • Number of Running Instances: 1
  • DB Replicaset Oplog:
  • NodeJS Version: 14.21
  • MongoDB Version:4.2.2
Client Setup Information
  • Desktop App or Browser Version:web
  • Operating System:win10
Additional context
Relevant logs:

{
"level": 35,
"time": "2022-12-03T02:21:24.669Z",
"pid": 5039,
"hostname": "instance-20220809-2252",
"name": "API",
"method": "POST",
"url": "/api/v1/rooms.upload/GENERAL",
"userId": "WB2XXXXXXXX",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36 Edg/107.0.1418.62",
"length": "1271474",
"host": "lsp.XXXX",
"referer": "https://lsp.xxxxxxxxxx",
"remoteIP": "172.XXXXX",
"err": {
"type": "errorClass",
"message": "Error: Request failed with status code 404 [ufs: cannot upload file]",
"stack": "Error: Error: Request failed with status code 404 [ufs: cannot upload file]
at MethodInvocation.ufsComplete (packages/jalik:ufs/ufs-methods.js:122:11)
at maybeAuditArgumentChecks (packages/ddp-server/livedata_server.js:1885:12)
at packages/ddp-server/livedata_server.js:1803:15
at Meteor.EnvironmentVariable.EVp.withValue (packages/meteor.js:1257:12)
at packages/ddp-server/livedata_server.js:1801:36
at new Promise ()
at Server.applyAsync (packages/ddp-server/livedata_server.js:1800:12)
at Server.apply (packages/ddp-server/livedata_server.js:1739:26)
at Server.call (packages/ddp-server/livedata_server.js:1721:17)
at FileUploadClass._doInsert (app/file-upload/server/lib/FileUpload.js:683:24)
at FileUploadClass.insert (app/file-upload/server/lib/FileUpload.js:710:15)
at FileUploadClass.insertSync (packages/meteor.js:311:21)
at Object.post (app/api/server/v1/rooms.js:112:35)
at app/api/server/api.js:431:96
at Meteor.EnvironmentVariable.EVp.withValue (packages/meteor.js:1257:12)
at Object._internalRouteActionHandler [as action] (app/api/server/api.js:431:39)
at Route._callEndpoint (packages/rocketchat_restivus/lib/route.coffee:150:32)
at packages/rocketchat_restivus/lib/route.coffee:59:33
at packages/simple_json-routes.js💯9
=> awaited here:
at Promise.await (/snap/rocketchat-server/1519/programs/server/npm/node_modules/meteor/promise/node_modules/meteor-promise/promise_server.js:60:12)
at Server.apply (packages/ddp-server/livedata_server.js:1752:22)
at Server.call (packages/ddp-server/livedata_server.js:1721:17)
at FileUploadClass._doInsert (app/file-upload/server/lib/FileUpload.js:683:24)
at FileUploadClass.insert (app/file-upload/server/lib/FileUpload.js:710:15)
at FileUploadClass.insertSync (packages/meteor.js:311:21)
at Object.post (app/api/server/v1/rooms.js:112:35)
at app/api/server/api.js:431:96
at Meteor.EnvironmentVariable.EVp.withValue (packages/meteor.js:1257:12)
at Object._internalRouteActionHandler [as action] (app/api/server/api.js:431:39)
at Route._callEndpoint (packages/rocketchat_restivus/lib/route.coffee:150:32)
at packages/rocketchat_restivus/lib/route.coffee:59:33
at packages/simple_json-routes.js💯9",
"isClientSafe": true,
"error": "ufs: cannot upload file",
"reason": {
"message": "Request failed with status code 404",
"stack": "Error: Request failed with status code 404
at createError (/snap/rocketchat-server/1519/programs/server/npm/node_modules/webdav/node_modules/axios/lib/core/createError.js:16:15)
at settle (/snap/rocketchat-server/1519/programs/server/npm/node_modules/webdav/node_modules/axios/lib/core/settle.js:17:12)
at RedirectableRequest.handleResponse (/snap/rocketchat-server/1519/programs/server/npm/node_modules/webdav/node_modules/axios/lib/adapters/http.js:210:9)
at RedirectableRequest.emit (events.js:400:28)
at RedirectableRequest.emit (domain.js:475:12)
at RedirectableRequest._processResponse (/snap/rocketchat-server/1519/programs/server/npm/node_modules/follow-redirects/index.js:269:10)
at ClientRequest.RedirectableRequest._onNativeResponse (/snap/rocketchat-server/1519/programs/server/npm/node_modules/follow-redirects/index.js:50:10)
at Object.onceWrapper (events.js:520:26)
at ClientRequest.emit (events.js:400:28)
at ClientRequest.emit (domain.js:475:12)
at HTTPParser.parserOnIncomingClient [as onIncoming] (_http_client.js:647:27)
at HTTPParser.parserOnHeadersComplete (_http_common.js:127:17)
at TLSSocket.socketOnData (_http_client.js:515:22)
at TLSSocket.emit (events.js:400:28)
at TLSSocket.emit (domain.js:475:12)
at addChunk (internal/streams/readable.js:293:12)
at readableAddChunk (internal/streams/readable.js:267:9)
at TLSSocket.Readable.push (internal/streams/readable.js:206:10)
at TLSWrap.onStreamRead (internal/stream_base_commons.js:188:23)
at TLSWrap.callbackTrampoline (internal/async_hooks.js:130:17)",
"config": {
"url": "https://pan.XXXXXXXXXXXXXXXX",
"method": "get",
"headers": {
"Accept": "application/json, text/plain, /",
"Authorization": "Basic YWRXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"User-Agent": "axios/0.19.2"
},
"transformRequest": [
null
],
"transformResponse": [
null
],
"timeout": 0,
"responseType": "stream",
"xsrfCookieName": "XSRF-TOKEN",
"xsrfHeaderName": "X-XSRF-TOKEN",
"maxContentLength": -1
}
},
"errorType": "Meteor.Error"
},
"status": 400,
"responseTime": 1047,
"msg": "Error: Request failed with status code 404 [ufs: cannot upload file]"
}

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start at app/file-upload/server/lib/FileUpload.js and packages/jalik:ufs/ufs-methods.js, following the rooms.upload path shown in the stack trace. Reproduce a WebDAV upload against the reported setup and trace the 404 response from the configured endpoint. Done means the upload succeeds and the failure is covered by a reliable verification or regression test.

Written by the indexing model from the issue text.

Assessment

Tech stack
node.js
Domain
backend
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.