Retrofit - Solicitação de várias partes: O parâmetro obrigatório MultipartFile 'file' não está presente

Estou tentando enviar arquivo no servidor usando o Retrofit2. Faço tudo de acordo com a documentação, mas sempre recebo 400 erros do servidor.

Eu tentei fazer assim:

RequestBody body =
                RequestBody.create(MediaType.parse("image/png"), photo);
    //..........

    @Multipart
    @POST(ADD_PHOTO)
    Observable<HPSPhotoResponse>
    addPhoto(@Part("file") RequestBody file);

... e assim:

MultipartBody.Part part = MultipartBody.Part.createFormData("file", "file", body);
     //...........

    @Multipart
    @POST(ADD_PHOTO)
    Observable<HPSPhotoResponse>
    addPhoto(@Part("file") MultipartBody.Part files);

não importa. O resultado é sempre o mesmo "Solicitação de várias partes: O parâmetro obrigatório MultipartFile 'file' não está presente" - resposta do servidor.

Eu acho que o Spring no servidor não funciona bem, mas eu faço o código equivalente no Swift (iOS) e funciona! Aqui, o servidor vê essa parte do 'arquivo'.

Alamofire.upload(method, endpoint, headers: headers,
            multipartFormData: { multipartFormData in
                multipartFormData.appendBodyPart(fileURL: self.filePath!, name: "file")
            }

Agora eu quero que funcione no Android com Retrofit. Mas eu até olho nos logs de solicitações de Retrofit e, de fato, não vejo nenhum texto de 'arquivo' nos logs.

O que há de errado nisso?

questionAnswers(2)

yourAnswerToTheQuestion