We are making an API request with the following headers:
Content-Encoding: gzip Accept-Encoding: gzip,deflate Content-Type: text/xml
But we are getting the following error:
{ "fault": { "faultstring": "Decompression failure at request", "detail": { "errorcode": "messaging.adaptors.http.flow.DecompressionFailureAtRequest" } } }
Can you please explain why are we getting the error "messaging.adaptors.http.flow.DecompressionFailureAtRequest" ?
Solved! Go to Solution.
After investigation, it was found that if the header "Content-Encoding: gzip" is passed along with any data as part of the request, then Apigee Edge will alway try to uncompress the data passed.
In this case, the data passed was in XML (Content-Type: text/xml), which is not in gzipped format, so Apigee Edge failed with the following error as seen in the Message Processor logs:
java.util.zip.ZipException: Not in GZIP format ...
And then Edge sends the response to the client as:
{ "fault": { "faultstring": "Decompression failure at request", "detail": { "errorcode": "messaging.adaptors.http.flow.DecompressionFailureAtRequest" } } }
The solution to this issue is:
After investigation, it was found that if the header "Content-Encoding: gzip" is passed along with any data as part of the request, then Apigee Edge will alway try to uncompress the data passed.
In this case, the data passed was in XML (Content-Type: text/xml), which is not in gzipped format, so Apigee Edge failed with the following error as seen in the Message Processor logs:
java.util.zip.ZipException: Not in GZIP format ...
And then Edge sends the response to the client as:
{ "fault": { "faultstring": "Decompression failure at request", "detail": { "errorcode": "messaging.adaptors.http.flow.DecompressionFailureAtRequest" } } }
The solution to this issue is:
User | Count |
---|---|
3 | |
2 | |
1 | |
1 | |
1 |