The nginx default for client_max_body_size is 1MB, client-side rescaled jpegs are all under 1MB, everything become clear.
I fixed my nginx config: Set client_max_body_size to 4m to match Discourse configuration. · AFPy/infra@861af29 · GitHub
And it now works. You were right: it was my reverse proxy.
Thank you all
and sorry for the noise!