Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

HTTP Connector Fails to Handle Brotli-Encoded Responses #4037

Open
KalinduGandara opened this issue Feb 18, 2025 · 0 comments
Open

HTTP Connector Fails to Handle Brotli-Encoded Responses #4037

KalinduGandara opened this issue Feb 18, 2025 · 0 comments
Labels

Comments

@KalinduGandara
Copy link

Description

When making an HTTP request using the WSO2 Micro Integrator (MI) HTTP Connector, if the response is Brotli-encoded (Content-Encoding: br), the request fails with an unclear error message. This makes it difficult to diagnose and resolve the issue.

related issue - #3028

[2025-02-18 14:46:57,658] ERROR {JsonStreamBuilder} - Error occurred while processing document for application/json java.lang.reflect.InvocationTargetException
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.wso2.micro.integrator.core.json.JsonStreamBuilder.processDocument(JsonStreamBuilder.java:69)
	at org.apache.synapse.transport.passthru.util.DeferredMessageBuilder.getDocument(DeferredMessageBuilder.java:153)
	at org.apache.synapse.transport.passthru.util.RelayUtils.buildMessage(RelayUtils.java:179)
	at org.apache.synapse.transport.passthru.util.RelayUtils.buildMessage(RelayUtils.java:132)
	at org.apache.synapse.transport.util.PassThroughMessageHandler.buildMessage(PassThroughMessageHandler.java:103)
	at org.apache.synapse.util.MediatorEnrichUtil.buildMessage(MediatorEnrichUtil.java:248)
	at org.apache.synapse.mediators.template.InvokeMediator.doEnrich(InvokeMediator.java:533)
	at org.apache.synapse.mediators.template.InvokeMediator.processConnectorResponse(InvokeMediator.java:506)
	at org.apache.synapse.mediators.template.InvokeMediator.postMediate(InvokeMediator.java:387)
	at org.apache.synapse.mediators.template.InvokeMediator.mediate(InvokeMediator.java:257)
	at org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:249)
	at org.apache.synapse.core.axis2.Axis2SynapseEnvironment.mediateFromContinuationStateStack(Axis2SynapseEnvironment.java:857)
	at org.apache.synapse.core.axis2.Axis2SynapseEnvironment.injectMessage(Axis2SynapseEnvironment.java:330)
	at org.apache.synapse.core.axis2.SynapseCallbackReceiver.handleMessage(SynapseCallbackReceiver.java:678)
	at org.apache.synapse.core.axis2.SynapseCallbackReceiver.receive(SynapseCallbackReceiver.java:213)
	at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180)
	at org.apache.synapse.transport.passthru.ClientWorker.run(ClientWorker.java:339)
	at org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:172)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: org.apache.axis2.AxisFault: #Can not parse stream. MessageID: urn:uuid:6a9764a9-c599-4f40-a579-af6ff156a912. Error>>> #getNewJsonPayload. Could not save JSON payload. Invalid input stream found. Payload is not a JSON string.
	at org.apache.synapse.commons.json.JsonUtil.getNewJsonPayload(JsonUtil.java:904)
	at org.apache.synapse.commons.json.JsonStreamBuilder.processDocument(JsonStreamBuilder.java:43)
	... 25 more
Caused by: org.apache.axis2.AxisFault: #getNewJsonPayload. Could not save JSON payload. Invalid input stream found. Payload is not a JSON string.
	at org.apache.synapse.commons.json.JsonUtil.getNewJsonPayload(JsonUtil.java:888)
	... 26 more

[2025-02-18 14:46:57,658] ERROR {DeferredMessageBuilder} - Error building message org.apache.axis2.AxisFault
	at org.wso2.micro.integrator.core.json.JsonStreamBuilder.processDocument(JsonStreamBuilder.java:73)
	at org.apache.synapse.transport.passthru.util.DeferredMessageBuilder.getDocument(DeferredMessageBuilder.java:153)
	at org.apache.synapse.transport.passthru.util.RelayUtils.buildMessage(RelayUtils.java:179)
	at org.apache.synapse.transport.passthru.util.RelayUtils.buildMessage(RelayUtils.java:132)
	at org.apache.synapse.transport.util.PassThroughMessageHandler.buildMessage(PassThroughMessageHandler.java:103)
	at org.apache.synapse.util.MediatorEnrichUtil.buildMessage(MediatorEnrichUtil.java:248)
	at org.apache.synapse.mediators.template.InvokeMediator.doEnrich(InvokeMediator.java:533)
	at org.apache.synapse.mediators.template.InvokeMediator.processConnectorResponse(InvokeMediator.java:506)
	at org.apache.synapse.mediators.template.InvokeMediator.postMediate(InvokeMediator.java:387)
	at org.apache.synapse.mediators.template.InvokeMediator.mediate(InvokeMediator.java:257)
	at org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:249)
	at org.apache.synapse.core.axis2.Axis2SynapseEnvironment.mediateFromContinuationStateStack(Axis2SynapseEnvironment.java:857)
	at org.apache.synapse.core.axis2.Axis2SynapseEnvironment.injectMessage(Axis2SynapseEnvironment.java:330)
	at org.apache.synapse.core.axis2.SynapseCallbackReceiver.handleMessage(SynapseCallbackReceiver.java:678)
	at org.apache.synapse.core.axis2.SynapseCallbackReceiver.receive(SynapseCallbackReceiver.java:213)
	at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180)
	at org.apache.synapse.transport.passthru.ClientWorker.run(ClientWorker.java:339)
	at org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:172)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at java.base/java.lang.Thread.run(Thread.java:829)

[2025-02-18 14:46:57,658] ERROR {RelayUtils} - Error while building Passthrough stream org.apache.axis2.AxisFault
	at org.wso2.micro.integrator.core.json.JsonStreamBuilder.processDocument(JsonStreamBuilder.java:73)
	at org.apache.synapse.transport.passthru.util.DeferredMessageBuilder.getDocument(DeferredMessageBuilder.java:153)
	at org.apache.synapse.transport.passthru.util.RelayUtils.buildMessage(RelayUtils.java:179)
	at org.apache.synapse.transport.passthru.util.RelayUtils.buildMessage(RelayUtils.java:132)
	at org.apache.synapse.transport.util.PassThroughMessageHandler.buildMessage(PassThroughMessageHandler.java:103)
	at org.apache.synapse.util.MediatorEnrichUtil.buildMessage(MediatorEnrichUtil.java:248)
	at org.apache.synapse.mediators.template.InvokeMediator.doEnrich(InvokeMediator.java:533)
	at org.apache.synapse.mediators.template.InvokeMediator.processConnectorResponse(InvokeMediator.java:506)
	at org.apache.synapse.mediators.template.InvokeMediator.postMediate(InvokeMediator.java:387)
	at org.apache.synapse.mediators.template.InvokeMediator.mediate(InvokeMediator.java:257)
	at org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:249)
	at org.apache.synapse.core.axis2.Axis2SynapseEnvironment.mediateFromContinuationStateStack(Axis2SynapseEnvironment.java:857)
	at org.apache.synapse.core.axis2.Axis2SynapseEnvironment.injectMessage(Axis2SynapseEnvironment.java:330)
	at org.apache.synapse.core.axis2.SynapseCallbackReceiver.handleMessage(SynapseCallbackReceiver.java:678)
	at org.apache.synapse.core.axis2.SynapseCallbackReceiver.receive(SynapseCallbackReceiver.java:213)
	at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180)
	at org.apache.synapse.transport.passthru.ClientWorker.run(ClientWorker.java:339)
	at org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:172)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at java.base/java.lang.Thread.run(Thread.java:829)

[2025-02-18 14:46:57,658] ERROR {MediatorEnrichUtil} - Error while building message. Error while building Passthrough stream org.apache.axis2.AxisFault: Error while building Passthrough stream
	at org.apache.synapse.transport.passthru.util.RelayUtils.handleException(RelayUtils.java:467)
	at org.apache.synapse.transport.passthru.util.RelayUtils.buildMessage(RelayUtils.java:230)
	at org.apache.synapse.transport.passthru.util.RelayUtils.buildMessage(RelayUtils.java:132)
	at org.apache.synapse.transport.util.PassThroughMessageHandler.buildMessage(PassThroughMessageHandler.java:103)
	at org.apache.synapse.util.MediatorEnrichUtil.buildMessage(MediatorEnrichUtil.java:248)
	at org.apache.synapse.mediators.template.InvokeMediator.doEnrich(InvokeMediator.java:533)
	at org.apache.synapse.mediators.template.InvokeMediator.processConnectorResponse(InvokeMediator.java:506)
	at org.apache.synapse.mediators.template.InvokeMediator.postMediate(InvokeMediator.java:387)
	at org.apache.synapse.mediators.template.InvokeMediator.mediate(InvokeMediator.java:257)
	at org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:249)
	at org.apache.synapse.core.axis2.Axis2SynapseEnvironment.mediateFromContinuationStateStack(Axis2SynapseEnvironment.java:857)
	at org.apache.synapse.core.axis2.Axis2SynapseEnvironment.injectMessage(Axis2SynapseEnvironment.java:330)
	at org.apache.synapse.core.axis2.SynapseCallbackReceiver.handleMessage(SynapseCallbackReceiver.java:678)
	at org.apache.synapse.core.axis2.SynapseCallbackReceiver.receive(SynapseCallbackReceiver.java:213)
	at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180)
	at org.apache.synapse.transport.passthru.ClientWorker.run(ClientWorker.java:339)
	at org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:172)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: org.apache.axis2.AxisFault
	at org.wso2.micro.integrator.core.json.JsonStreamBuilder.processDocument(JsonStreamBuilder.java:73)
	at org.apache.synapse.transport.passthru.util.DeferredMessageBuilder.getDocument(DeferredMessageBuilder.java:153)
	at org.apache.synapse.transport.passthru.util.RelayUtils.buildMessage(RelayUtils.java:179)
	... 18 more

Steps to Reproduce

  1. Configure an HTTP request in WSO2 MI using the HTTP Connector.
  2. Send a GET request to a server that responds with Brotli encoding.
  3. Observe that the response fails with an unclear error message.

Version

4.4.0 - RC2

Environment Details (with versions)

No response

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant