Description
If you look at the DefaultHttpProxyService
, we call TryAdd()
to the x-ms-invocation-id
header. This means that if it's already there, we do not add it.
This means that the header id is incorrect and the worker cannot find the corresponding grpc invocation, resulting in a timeout error on the worker side in dotnet-isolated.
This can happen if one dotnet-isolated function app is directly forwarding or cloning a request and sending it to a second dotnet-isolated function app. This carries the header from the original app over to the second app and causes a timeout. We've had one CRI on this.
The error is Timed out waiting for the function start call.
We should probably just be overwriting this header whenever we add it as it's really for host-worker communication. The fix should be fairly straightforward, but we'll need a test to protect against regressions.