RocketChat / Rocket.Chat.ReactNative

Rocket.Chat mobile clients
https://rocket.chat
MIT License
2.01k stars 1.17k forks source link

Profile picture upload is not working #1409

Closed ani4aniket closed 4 years ago

ani4aniket commented 4 years ago

I have attached a screen recording which I've faced during running the app on iOS simulator. Screen Recording 2019-11-21 at 5 23 41 PM

diegolmello commented 4 years ago

@ani4aniket There're two issues apparently. First one is not showing the image you've selected at the top of the view. The other is the avatar cache not refreshing, because your avatar seems to be changed on the web.

ani4aniket commented 4 years ago

Yeah, You are right as in my phone app. The image is not updated. Screenshot_2019-11-21-18-54-16-04_6c2112e95a10afaab76cfa27a6d42c7b

nccurry commented 4 years ago

Seeing this issue on android as well

mahal commented 4 years ago

As by my tests, this is related to the caching issue #441

But by my tests I encountered following when uploading avatars from both Android and iOS:

Steps to reproduce:

Actual result:

Environment: RC-RN client: 4.6.4.295 iOS, 4.6.4.2118 (Android)

The same happens on our own rocket.chat server: 2.4.11 The log file shows

I20200422-09:08:32.874(0) Sanitized and reported to the client as: { Error: Match failed [400]     at errorClass.<anonymous> (packages/check/match.js:91:27)     at new errorClass (packages/meteor.js:655:17)     at check (packages/check/match.js:36:17)     at MethodInvocation.setAvatarFromService (server/methods/setAvatarFromService.js:15:3)     at MethodInvocation.methodsMap.(anonymous function) (app/lib/server/lib/debug.js:67:34)     at maybeAuditArgumentChecks (packages/ddp-server/livedata_server.js:1771:12)     at DDP._CurrentMethodInvocation.withValue (packages/ddp-server/livedata_server.js:719:19)     at Meteor.EnvironmentVariable.EVp.withValue (packages/meteor.js:1234:12)     at DDPServer._CurrentWriteFence.withValue (packages/ddp-server/livedata_server.js:717:46)     at Meteor.EnvironmentVariable.EVp.withValue (packages/meteor.js:1234:12)     at Promise (packages/ddp-server/livedata_server.js:715:46)     at new Promise (<anonymous>)     at Session.method (packages/ddp-server/livedata_server.js:689:23)     at packages/ddp-server/livedata_server.js:559:43   isClientSafe: true,   error: 400,   reason: 'Match failed',   details: undefined,   message: 'Match failed [400]',   errorType: 'Meteor.Error' } 
I20200422-09:08:32.874(0) undefined undefined 
nofikoff commented 4 years ago

I have the same problems.

Rocket Chat Version: 3.2.0-develop NodeJS Version: 12.16.1 - x64 MongoDB Version: 4.0.18 MongoDB Engine: mmapv1 Platform: linux Deployment Method: Docker

I compared the logs of the upload avatar from the web browser and from the mobile application (Android/ iOS). When generating a request from a mobile application, the last parameter is "{}" and must be "" or empty!

Adnroid APP with error upload: server.js:204 Meteor ➔ method setAvatarFromService -> userId: aW7eNTaqHETbp5YnK, arguments: [“data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEASABIAAD/2wBDAAgGBgcGBQ< … >ge4zz9azoXIJxipERZZTvGaBlpSiy4hkZyOeP8DVj7ZcDja3/fIrN/1ch28VVe5l3H5jUgf//Z”, “”,“upload”,{}]

Chrome Browser success upload: server.js:204 Meteor ➔ method setAvatarFromService -> userId: aW7eNTaqHETbp5YnK, arguments: [“data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEASABIAAD/2wBDAAgGBgcGBQ< … >ge4zz9azoXIJxipERZZTvGaBlpSiy4hkZyOeP8DVj7ZcDja3/fIrN/1ch28VVe5l3H5jUgf//Z”, “image/jpeg”,“upload”]

P.S. The same problem with the official server https://open.rocket.chat with the Rocket.Chat Experimental client from the Google Play Market

djorkaeffalexandre commented 4 years ago

Hey @nofikoff, I think your error was fixed by #2050. It'll be launched as a public beta soon, try to enroll on our beta apps. Thanks in advance.