Images associated with the model cannot be updated (they are stored in the media library). That is, a PUT request to the model will not update the image (other properties of the model will update without issue).
I have this love/hate relationship with strapi because i can solve all my issues but only after getting a headache.
I also had the same issue and couldn’t figure out why, then i thought … if I set the old image field to null in the form data, it will set it to null in the backend and then maybe fill it with the new upload? Turns out it works.
Pseudo-code: formData.append('data', JSON.stringify({avatar: null, otherfields...})