Je pense que cela est dû au paramètre du site discourse connect overrides avatar.
Remplace l’avatar de l’utilisateur par la valeur du payload DiscourseConnect. Si activé, les utilisateurs ne seront pas autorisés à télécharger des avatars sur Discourse.
Sur ma machine locale, avec ce paramètre désactivé, j’obtiens une réponse HTTP 200 lors de la mise à jour de l’avatar via l’API :
curl -i -sS -X PUT "http://localhost:4200/u/10614bb2d4eacd328c45/preferences/avatar/pick.json" \
-H "Content-Type: multipart/form-data" \
-H "Api-Key: 6cea489d21282803c446fd2e9d236901c3d186f36079911833db4b57c43c01d5" \
-H "Api-Username: blake.erickson" \
-F "upload_id=57" \
-F "type=uploaded"
HTTP/1.1 200 OK
Et j’obtiens un 422 avec ce paramètre activé :
curl -i -sS -X PUT "http://localhost:4200/u/021ca796a01ad178bc52/preferences/avatar/pick.json" \
-H "Content-Type: multipart/form-data" \
-H "Api-Key: 6cea489d21282803c446fd2e9d236901c3d186f36079911833db4b57c43c01d5" \
-H "Api-Username: blake.erickson" \
-F "upload_id=57" \
-F "type=uploaded"
HTTP/1.1 422 Unprocessable Entity
