What might be happening is that this header should go as string, the upstream guys must be json decoding this. And tyk is changing it such that json decoding is failing on their end.
Headers naturally take string values, so encoding and passing it as base64 should resolve the issue. You would simply need to decode it when it get’s upstream.
Is there another workaround other than asking the upstream to decode the header? We don’t own the upstream, so it will be hard for us to make any changes on the upstream side.
Yes, @Ankit_Gaur confirmed this. I have reported this internally and will update this thread when I get a response. In the meantime, a workaround is to convert it to base64 and avoid any quotes " or reverse solidus \ in the header. You could also try removing any reverse solidus characters that get upstream at the backend. However, this requires you own the upstream or can modify it in some way or form.