Skip to content

SnapStart with Minimal API .Net 10 issue #2271

@mikemike396

Description

@mikemike396

Describe the bug

Were trying to get SnapStart working with a .Net 10 .zip function thats running Minimal API project.

When we upload a new zip and create the new version we see the /warmup endpoint hit but no other logs of SnapStart working or failing. Additionally after about 10 minutes we're seeing a [INIT_START] cold start of around 6s.

We expected to see logs such as [restoreDuration] on requests.

Any thoughts on why this isn't working?

Function Details
Runtime: .NET 10 (C#/F#/PowerShell)
Architecture: arm64
Memory: 512MB
Ephemeral storage: 512MB
Timeout: 15s
Function URL: Auth type = None

Regression Issue

  • Select this option if this issue appears to be a regression.

Expected Behavior

SnapStart should be picking up requests on cold starts.

Current Behavior

SnapStart is not reducing cold init starts.

Reproduction Steps

Program.cs

var builder = WebApplication.CreateBuilder(args);
var services = builder.Services;

// AWS Lambda hosting configuration
services.AddAWSLambdaHosting(LambdaEventSource.HttpApi);

// Add warm-up requests before snapshot
builder.Services.AddAWSLambdaBeforeSnapshotRequest(
    new HttpRequestMessage(HttpMethod.Get, "/warmup"));

app.MapGet("/warmup", () => "Warmup successful");

// Start the application
app.Run();

This is how we are publishing:
dotnet publish -c Release -r linux-arm64 --self-contained false -o ./lambda-publish

Possible Solution

No response

Additional Information/Context

When deploying a new version we see this:

2026-02-01T20:32:42.205Z
INIT_START Runtime Version: dotnet:10.v20 Runtime Version ARN: arn:aws:lambda:us-east-1::runtime:1b485095a08c766eafbff6b853f6e32d7a9fd64469bb1d0b1312a9e324113ea8
2026-02-01T20:32:43.438Z
warn: Amazon.Lambda.AspNetCoreServer.AbstractAspNetCoreFunction[0]
2026-02-01T20:32:43.438Z
Request does not contain domain name information but is derived from APIGatewayProxyFunction.
2026-02-01T20:32:43.465Z
info: Microsoft.AspNetCore.Hosting.Diagnostics[1]
2026-02-01T20:32:43.465Z
Request starting GET https:///warmup - - 0
2026-02-01T20:32:43.880Z
info: Microsoft.AspNetCore.Routing.EndpointMiddleware[0]
2026-02-01T20:32:43.880Z
Executing endpoint 'HTTP: GET /warmup'
2026-02-01T20:32:43.884Z
info: Microsoft.AspNetCore.Routing.EndpointMiddleware[1]
2026-02-01T20:32:43.884Z
Executed endpoint 'HTTP: GET /warmup'
2026-02-01T20:32:43.961Z
info: Microsoft.AspNetCore.Hosting.Diagnostics[2]
2026-02-01T20:32:43.961Z
Request finished GET https:///warmup - 200 - text/plain;+charset=utf-8 476.4169ms
2026-02-01T20:32:43.962Z
warn: Amazon.Lambda.AspNetCoreServer.AbstractAspNetCoreFunction[0]
2026-02-01T20:32:43.962Z
Request does not contain domain name information but is derived from APIGatewayProxyFunction.
2026-02-01T20:32:43.962Z
info: Microsoft.AspNetCore.Hosting.Diagnostics[1]
2026-02-01T20:32:43.962Z
Request starting GET https:///warmup - - 0
2026-02-01T20:32:43.962Z
info: Microsoft.AspNetCore.Routing.EndpointMiddleware[0]
2026-02-01T20:32:43.962Z
Executing endpoint 'HTTP: GET /warmup'
2026-02-01T20:32:43.963Z
info: Microsoft.AspNetCore.Routing.EndpointMiddleware[1]
2026-02-01T20:32:43.963Z
Executed endpoint 'HTTP: GET /warmup'
2026-02-01T20:32:43.963Z
info: Microsoft.AspNetCore.Hosting.Diagnostics[2]
2026-02-01T20:32:43.963Z
Request finished GET https:///warmup - 200 - text/plain;+charset=utf-8 0.3481ms
2026-02-01T20:32:43.963Z
warn: Amazon.Lambda.AspNetCoreServer.AbstractAspNetCoreFunction[0]
2026-02-01T20:32:43.963Z
Request does not contain domain name information but is derived from APIGatewayProxyFunction.
2026-02-01T20:32:43.963Z
info: Microsoft.AspNetCore.Hosting.Diagnostics[1]
2026-02-01T20:32:43.963Z
Request starting GET https:///warmup - - 0
2026-02-01T20:32:43.963Z
info: Microsoft.AspNetCore.Routing.EndpointMiddleware[0]
2026-02-01T20:32:43.963Z
Executing endpoint 'HTTP: GET /warmup'
2026-02-01T20:32:43.963Z
info: Microsoft.AspNetCore.Routing.EndpointMiddleware[1]
2026-02-01T20:32:43.963Z
Executed endpoint 'HTTP: GET /warmup'
2026-02-01T20:32:43.963Z
info: Microsoft.AspNetCore.Hosting.Diagnostics[2]
2026-02-01T20:32:43.963Z
Request finished GET https:///warmup - 200 - text/plain;+charset=utf-8 0.0992ms
2026-02-01T20:32:43.963Z
warn: Amazon.Lambda.AspNetCoreServer.AbstractAspNetCoreFunction[0]
2026-02-01T20:32:43.963Z
Request does not contain domain name information but is derived from APIGatewayProxyFunction.
2026-02-01T20:32:43.963Z
info: Microsoft.AspNetCore.Hosting.Diagnostics[1]
2026-02-01T20:32:43.963Z
Request starting GET https:///warmup - - 0
2026-02-01T20:32:43.963Z
info: Microsoft.AspNetCore.Routing.EndpointMiddleware[0]
2026-02-01T20:32:43.963Z
Executing endpoint 'HTTP: GET /warmup'
2026-02-01T20:32:43.963Z
info: Microsoft.AspNetCore.Routing.EndpointMiddleware[1]
2026-02-01T20:32:43.963Z
Executed endpoint 'HTTP: GET /warmup'
2026-02-01T20:32:43.963Z
info: Microsoft.AspNetCore.Hosting.Diagnostics[2]
2026-02-01T20:32:43.963Z
Request finished GET https:///warmup - 200 - text/plain;+charset=utf-8 0.0664ms
2026-02-01T20:32:43.963Z
warn: Amazon.Lambda.AspNetCoreServer.AbstractAspNetCoreFunction[0]
2026-02-01T20:32:43.963Z
Request does not contain domain name information but is derived from APIGatewayProxyFunction.
2026-02-01T20:32:43.963Z
info: Microsoft.AspNetCore.Hosting.Diagnostics[1]
2026-02-01T20:32:43.963Z
Request starting GET https:///warmup - - 0
2026-02-01T20:32:43.963Z
info: Microsoft.AspNetCore.Routing.EndpointMiddleware[0]
2026-02-01T20:32:43.963Z
Executing endpoint 'HTTP: GET /warmup'
2026-02-01T20:32:43.963Z
info: Microsoft.AspNetCore.Routing.EndpointMiddleware[1]
2026-02-01T20:32:43.963Z
Executed endpoint 'HTTP: GET /warmup'
2026-02-01T20:32:43.963Z
info: Microsoft.AspNetCore.Hosting.Diagnostics[2]
2026-02-01T20:32:43.963Z
Request finished GET https:///warmup - 200 - text/plain;+charset=utf-8 0.0804ms
2026-02-01T20:32:44.144Z
INIT_REPORT Init Duration: 1970.07 ms
2026-02-01T20:32:44.181Z
INIT_REPORT Init Duration: 1975.76 ms

Cold Start after 10 minutes of no requests:

2026-02-01T20:43:52.318Z
INIT_START Runtime Version: dotnet:10.v20 Runtime Version ARN: arn:aws:lambda:us-east-1::runtime:1b485095a08c766eafbff6b853f6e32d7a9fd64469bb1d0b1312a9e324113ea8
2026-02-01T20:43:52.844Z
START RequestId: 1a38fbf8-46ee-49aa-ae5c-1188f2c10afb Version: $LATEST
2026-02-01T20:43:53.097Z
info: Microsoft.AspNetCore.Hosting.Diagnostics[1]
2026-02-01T20:43:53.097Z
Request starting GET https://xyz.lambda-url.us-east-1.on.aws/v1.0/Utilities/GetStatusMessageToUser - - 0
2026-02-01T20:43:53.709Z
info: Microsoft.AspNetCore.Routing.EndpointMiddleware[0]
2026-02-01T20:43:53.709Z
Executing endpoint 'HTTP: GET v{version:apiVersion}/Utilities/GetStatusMessageToUser => GetStatusMessageToUser'
2026-02-01T20:43:57.837Z
info: Microsoft.EntityFrameworkCore.Database.Command[20101]
2026-02-01T20:43:57.837Z
Executed DbCommand (76ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
2026-02-01T20:43:57.837Z
SELECT `s`.`MessageId`, `s`.`Adddate`, `s`.`Message`, `s`.`MessageEnabled`
2026-02-01T20:43:57.837Z
FROM `StatusMessageToUser` AS `s`
2026-02-01T20:43:57.837Z
WHERE `s`.`MessageEnabled`
2026-02-01T20:43:57.837Z
LIMIT 1
2026-02-01T20:43:57.973Z
info: Microsoft.AspNetCore.Http.Result.OkObjectResult[1]
2026-02-01T20:43:57.973Z
Setting HTTP status code 200.
2026-02-01T20:43:57.977Z
info: Microsoft.AspNetCore.Http.Result.OkObjectResult[3]
2026-02-01T20:43:57.977Z
Writing value of type 'StatusMessageToUserDto' as Json.
2026-02-01T20:43:58.013Z
info: Microsoft.AspNetCore.Routing.EndpointMiddleware[1]
2026-02-01T20:43:58.013Z
Executed endpoint 'HTTP: GET v{version:apiVersion}/Utilities/GetStatusMessageToUser => GetStatusMessageToUser'
2026-02-01T20:43:58.057Z
info: Microsoft.AspNetCore.Hosting.Diagnostics[2]
2026-02-01T20:43:58.057Z
Request finished GET https://xyz.lambda-url.us-east-1.on.aws/v1.0/Utilities/GetStatusMessageToUser - 200 - application/json;+charset=utf-8 4958.2651ms
2026-02-01T20:43:58.169Z
END RequestId: 1a38fbf8-46ee-49aa-ae5c-1188f2c10afb
2026-02-01T20:43:58.169Z
REPORT RequestId: 1a38fbf8-46ee-49aa-ae5c-1188f2c10afb Duration: 5310.57 ms Billed Duration: 5834 ms Memory Size: 512 MB Max Memory Used: 154 MB Init Duration: 522.85 ms

AWS .NET SDK and/or Package version used

Amazon.Lambda.AspNetCoreServer.Hosting: 1.9.1

Targeted .NET Platform

.NET 10 (Minimal API)

Operating System and version

OSX

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugThis issue is a bug.needs-triageThis issue or PR still needs to be triaged.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions