[Amazon.Lambda.RuntimeSupport] RIC headers shouldn't be case sensitive
Closed this issue · 16 comments
Describe the bug
RIC expects to get case sensitive (capitalized kebab case) headers from the Lambda Runtime API.
Regression Issue
- Select this option if this issue appears to be a regression.
Expected Behavior
This should be case insensitive.
It works perfectly for NodeJS
-- edit:
Also works perfectly for Java, Python, and Ruby
Current Behavior
When building a rust Proxy Server for the Lambda Runtime API, I get the following error when working in .NET functions.
Unhandled exception. System.Collections.Generic.KeyNotFoundException: The given key 'Lambda-Runtime-Aws-Request-Id' was not present in the dictionary.
--
| 2025-06-17T19:10:32.131Z | at System.Collections.Generic.Dictionary`2.get_Item(TKey key)
| 2025-06-17T19:10:32.131Z | at Amazon.Lambda.RuntimeSupport.RuntimeApiHeaders..ctor(Dictionary`2 headers) in /src/Repo/Libraries/src/Amazon.Lambda.RuntimeSupport/Client/RuntimeApiHeaders.cs:line 32
| 2025-06-17T19:10:32.131Z | at Amazon.Lambda.RuntimeSupport.RuntimeApiClient.GetNextInvocationAsync(CancellationToken cancellationToken) in /src/Repo/Libraries/src/Amazon.Lambda.RuntimeSupport/Client/RuntimeApiClient.cs:line 112
| 2025-06-17T19:10:32.131Z | at Amazon.Lambda.RuntimeSupport.LambdaBootstrap.InvokeOnceAsync(CancellationToken cancellationToken) in /src/Repo/Libraries/src/Amazon.Lambda.RuntimeSupport/Bootstrap/LambdaBootstrap.cs:line 261
| 2025-06-17T19:10:32.131Z | at Amazon.Lambda.RuntimeSupport.LambdaBootstrap.RunAsync(CancellationToken cancellationToken) in /src/Repo/Libraries/src/Amazon.Lambda.RuntimeSupport/Bootstrap/LambdaBootstrap.cs:line 224
| 2025-06-17T19:10:32.131Z | at Amazon.Lambda.RuntimeSupport.RuntimeSupportInitializer.RunLambdaBootstrap() in /src/Repo/Libraries/src/Amazon.Lambda.RuntimeSupport/RuntimeSupportInitializer.cs:line 70
| 2025-06-17T19:10:32.131Z | at Amazon.Lambda.RuntimeSupport.Program.Main(String[] args) in /src/Repo/Libraries/src/Amazon.Lambda.RuntimeSupport/Program.cs:line 48
| 2025-06-17T19:10:32.131Z | at Amazon.Lambda.RuntimeSupport.Program.<Main>(String[] args)
Reproduction Steps
Build a Lambda Runtime API proxy in Rust, then just do a bypass and see how it fails for .NET
Possible Solution
Making header lookup case insensitive
Additional Information/Context
No response
AWS .NET SDK and/or Package version used
n/a
Targeted .NET Platform
.NET 6 and .NET 8
Operating System and version
AWS Lambda
Closing due to the release of 2025_08_01
Comments on closed issues are hard for our team to see.
If you need more assistance, please either tag a team member or open a new issue that references this one.
If you wish to keep having a conversation with other community members under this issue feel free to do so.
Hey @GarrettBeatty,
Hope everything is going well! Any idea if #2094 included in latest release is now included in the runtime? 🤔
hi @duncanista i will double check this tomorrow!
Thanks – no rush, I was just preparing to release a Rust proxy for Datadog in our Lambda Extension, and seems like .NET is the only runtime where we cannot get a successful run. For context, Rust libraries ignore casing and lowercase all headers, so it has been out of my control try to mitigate it from my side.
I think for my release I'd have to exclude .NET users for this feature while this sorts out, let me know if you want me to provide a reproduction case or something!
thanks for the additional info. the actual lambda runtime deployment to lambda is handled by the lambda team (a different team at AWS), so i've pinged them today to see what the status is
@duncanista can you confirm which region you are working in too (us-west-2, us-east-1, etc)? I think their rollout is in waves so it might differ depending on the region
My test was in us-east-1, can test in a different region to confirm its working whenever wave-1 hits
@duncanista I've pinged the lambda team, but i won't have any update until tomorrow since they are in Dublin time. I did see this commit aws/aws-lambda-base-images@251d0f2#diff-670253f3a77c38590f7b55c2145a3ff451ed9c4ceddf97ba532a418a86748225 which seems to have the latest Amazon.Lambda.RuntimeSupport version, but i believe there is some other internal deployment process needed after that (which i wont hear back until tomorrow on at least).
Sounds good, thanks for the update!
Appreciate the help here, I'll be on top of it this week!
Hey @GarrettBeatty!
Sorry to ping you, are there any updates on when this will be released? 🙏🏽
@Stefan9283 are you able to provide an update from the lambda side?
Hi @duncanista the lambda team mentioned the deployment was done now. can you retest on your side?
closing this issue since lambda team mentioned that this was deployed. feel free to reopen if you are still seeing issues
Comments on closed issues are hard for our team to see.
If you need more assistance, please either tag a team member or open a new issue that references this one.
If you wish to keep having a conversation with other community members under this issue feel free to do so.
