Skip to content

Invocation can time out if incoming request contains "x-ms-invocation-id" header #10934

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

Open
brettsam opened this issue Mar 18, 2025 · 0 comments · May be fixed by #10980
Open

Invocation can time out if incoming request contains "x-ms-invocation-id" header #10934

brettsam opened this issue Mar 18, 2025 · 0 comments · May be fixed by #10980
Assignees
Labels

Comments

@brettsam
Copy link
Member

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.

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