I'm trying to upload an image to the PushBullet API with retrofit.

After the upload-request I fire the multipart upload.

With retrofit I get this error:

{"error":{"code":"invalid_request","type":"invalid_request","message":"Invalid multipart body.","cat":"o(^・x・^)o"},"error_code":"invalid_request"}

The problem only occurs in my java code and not with the PAW HTTP-Client.

# PAW generated Request POST /upload-legacy/bcSWXnBjNIwpkej7CxfIHFz0ugXO6yhf HTTP/1.1 Content-Type: multipart/form-data; charset=utf-8; boundary=__X_PAW_BOUNDARY__ Host: upload.pushbullet.com Connection: close User-Agent: Paw/3.0.12 (Macintosh; OS X/10.11.6) GCDHTTPRequest Content-Length: 34508 --__X_PAW_BOUNDARY__ Content-Disposition: form-data; name="file"; filename="cat.jpg" Content-Type: image/jpeg ... # Retrofit generated Request POST https://upload.pushbullet.com/upload-legacy/ZZ4fLcqt2WFQmlbKTDlgcYXtB3KiCs3M http/1.1 Content-Type: multipart/form-data; charset=utf-8 Content-Length: 2012 Content-Disposition: form-data; name="file"; filename="1475501429665_motion_detected.jpg" Content-Type: image/jpeg; charset=utf-8 Content-Length: 1772 ...

The important difference I think is the Content-Length in the Part . I found this issue, but that would mean the PushBullet API is non-compliant with the HTTP specification?

Any help would be appreciated.