Hey,
maybe try "size" instead of "max" even though it should be doing the same thing.
And also, check with a service what the image really is. Sometimes people try to use images that have been changed many times. From Bitmap, to jpeg, transformed to git, back into a png.
So maybe the image is to blame too. Also a .jpeg file can actually be a png file. The extension is not enough to determine what type a file really is.
Also, maybe to narrow it down, create specific error messages for each of the condition, so that you can be sure if it fails on the "required", "mimes" or "size".