I still don’t know exactly what was the problem, but I changed a bit how we were using our http library and it seems to work fine now.
For anyone struggling with similiar problem and happens to be using Apache HttpClient from JVM language - make entity for your request via basic EntityBuilder and not MultipartEntityBuilder.
E.g. in our case I replaced
val put = HttpPut(uploadUrl)
put.entity = MultipartEntityBuilder.create()
.addBinaryBody("manifest-json.json", manifest.toByteArray(Charsets.UTF_8))
.build()
with
val put = HttpPut(uploadUrl)
put.entity = EntityBuilder.create().setBinary(manifest.toByteArray())
.setContentType(ContentType.APPLICATION_FORM_URLENCODED).build()
and it seems to work fine now.
Cheers for @matwalsh for help.