Ich glaube, das liegt an der Website-Einstellung discourse connect overrides avatar.
Überschreibt das Benutzer-Avatar mit dem Wert aus der DiscourseConnect-Nutzlast. Wenn aktiviert, dürfen Benutzer keine Avatare in Discourse hochladen.
Lokal habe ich mit dieser Einstellung deaktiviert eine HTTP-Antwort 200 erhalten, wenn ich den Avatar über die API aktualisiere:
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
Und ich erhalte 422 mit dieser Einstellung aktiviert:
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
