Cold start latency regression: symptoms, cause, and the test that catches it
Serverless or container cold starts become slower after a dependency or image change.
Cold start latency regression is documented by 2 accepted public reports from 2 organisations, 2 of them published in the last 5 years.
- Likelihood: low (2 public reports in 5 years)
- Impact: low (2 of 2 reports: degraded)
Symptoms
User-visible
- The first invoke of a hello world serverless function, where the managed language runtime starts, was 5 to 10 percent slower on the new runtime major version than on the version two majors earlier.[1]
- Serverless cold starts were at least 50 ms slower after functions that use the cloud platform's JavaScript SDK moved to a newer JavaScript runtime major version.[2]
Monitoring-visible
- P90 total duration over 100 cold start invokes was about 730 ms on the new managed runtime version, against about 680 ms and about 671 ms on the two previous versions.[1]
- Runtime event captures showed more types loaded at startup on the new managed runtime version.[1]
- Function init duration with the JavaScript SDK was about 255 ms on the newer JavaScript runtime against about 204 ms on the previous one, with no difference when the SDK was absent.[2]
Root causes
- stage: third-party Many types were added to the new managed runtime version, and the low-CPU serverless startup scenario is sensitive to the extra type loading cost.[1]
- stage: third-party The JavaScript SDK imported the runtime's http request and agent modules at startup, and on the newer JavaScript runtime loading those modules adds init time even when they are not used.[2]
Public examples
- [1]Microsoft (.NET runtime), 2025-10-01. An AWS Lambda engineer measured a 5 to 10 percent slower first invoke on .NET 10 than on .NET 8 in Lambda; .NET team members attributed it to extra type loading cost from types added in .NET 10 and backported a lazy initialisation fix to .NET 10 servicing. primary Detecting .NET 10 Regression in startup performance affecting AWS Lambda
- [2]Amazon Web Services (AWS SDK for JavaScript v3), 2025-03-02. After moving Lambda functions that use the AWS SDK for JavaScript v3 from Node 20 to Node 22, init duration rose by about 50 ms because the SDK eagerly imported node:http; the SDK team shipped lazy loading in @smithy/node-http-handler 4.5.0. primary Lambda Node 22 coldstart latency regression - defer loading of node:http
Test classes that catch it
| Test class | Stage | Limitation | Basis |
|---|---|---|---|
| Load and performance tests | pre-deploy | A startup benchmark run with container settings showed the new managed runtime version as faster, so a performance test misses the regression unless it reproduces the low-CPU serverless cold start. | by design analysis |
| Canary and progressive delivery checks | post-deploy | A canary that compares request duration without separating init duration blends the cold start increase from the SDK's startup import into warm invokes that do not pay it. | by design analysis |
Risk
- Likelihood: low (2 public reports in 5 years)
- Impact: low (2 of 2 reports: degraded)
| Accepted public reports | 2 |
|---|---|
| Published in the last 5 years | 2 |
| Impact stated: degraded | 2 |
Pre-release checklist
- PR-01
- PR-02
- PR-03
- PR-04
- PR-05
- PR-06
- PR-07
First 30 minutes
- FM-01
- FM-02
- FM-03
- FM-04
- FM-05
- FM-06
- FM-07
Download the checklist
What catches this: catalogue entries
Listed because their own documentation or site names load and performance tests, canary and progressive delivery checks on the verification date. Alphabetical. Not a recommendation.
Tools whose documentation names these test classes
- Argo Rollouts canary source verified 2026-10-21
- Artillery load source verified 2026-10-21
- Drill load source verified 2026-10-21
- Flagger canary source verified 2026-10-21
- Gatling load source verified 2026-10-21
- Grafana k6 load source verified 2026-10-21
- GrowthBook canary source verified 2026-10-21
- hey load source verified 2026-10-21
- Karate load source verified 2026-10-21
- Kayenta canary source verified 2026-10-21
- LaunchDarkly canary source verified 2026-10-21
- Locust load source verified 2026-10-21
- oha load source verified 2026-10-21
- Postman load source verified 2026-10-21
- Spinnaker canary source verified 2026-10-21
- TestMu AI (formerly LambdaTest) load source verified 2026-10-21
- Unleash canary source verified 2026-10-21
Providers whose site names these test classes
- 2i load source verified 2026-10-21
- Abstracta load source verified 2026-10-21
- andagon people GmbH load source verified 2026-10-21
- Appmatics load source verified 2026-10-21
- AQA Masters load source verified 2026-10-21
- BugRaptors load source verified 2026-10-21
- Cleverix load source verified 2026-10-21
- Crestech Software Systems load source verified 2026-10-21
- Crowdar load source verified 2026-10-21
- DeviQA load source verified 2026-10-21
- Elinext load source verified 2026-10-21
- Exactpro load source verified 2026-10-21
- Full Scale load source verified 2026-10-21
- Inmetrics load source verified 2026-10-21
- Invensis Technologies load source verified 2026-10-21
- iScale Solutions load source verified 2026-10-21
- Itekako load source verified 2026-10-21
- iValuePlus Services load source verified 2026-10-21
- Nimble Approach load source verified 2026-10-21
- Outpost QA load source verified 2026-10-21
- PLATO load source verified 2026-10-21
- Polteq load source verified 2026-10-21
- QA Madness load source verified 2026-10-21
- QA Mentor load source verified 2026-10-21
- QASource load source verified 2026-10-21
- QAwerk load source verified 2026-10-21
- Quality House load source verified 2026-10-21
- Quality Island load source verified 2026-10-21
- QualityKiosk Technologies load source verified 2026-10-21
- QualityLogic load source verified 2026-10-21
- Saigon Technology load source verified 2026-10-21
- SHIFT ASIA load source verified 2026-10-21
- SimplyTest GmbH load source verified 2026-10-21
- Sofka Technologies load source verified 2026-10-21
- Soflab Technology load source verified 2026-10-21
- SQA - Software Quality Assurance S.A. load source verified 2026-10-21
- SunTec India load source verified 2026-10-21
- T2S Tecnologia load source verified 2026-10-21
- TestFort load source verified 2026-10-21
- Testhouse load source verified 2026-10-21
- Testing IT load source verified 2026-10-21
- TestMatick load source verified 2026-10-21
- Testrig Technologies load source verified 2026-10-21
- Testscenario load source verified 2026-10-21
- TestSolutions GmbH load source verified 2026-10-21
- VTEST load source verified 2026-10-21
- Zoonou load source verified 2026-10-21
Only on this page
Cold start latency regression starts in the third-party stage in report [1] and report [2], not in application code. Neither team changed its own function code. In report [1], the slowdown came from types added to a new managed runtime version [1]. In report [2], it came from the SDK's startup import of the http module on a newer JavaScript runtime [2]. A code review of the function shows no diff that explains the slower cold start.
In report [1], the runtime maintainers' own startup measurements used container settings in which the new version was faster [1]. The regression was found by the serverless platform's performance testing before the new runtime became a managed option [1]. Both fixes shipped upstream as lazy loading: a runtime servicing release in report [1] and an http handler release in report [2].
Related incidents
- Background job queue backlog A job change slows processing and the queue grows faster than it drains.
- Connection pool exhausted A new code path leaks or holds connections and the pool runs out under load.
- Memory leak in new release Memory grows per request or per screen until processes restart or the app is killed.
- Thundering herd on restart Clients reconnect simultaneously after a rolling restart and overload a dependency.
- Cache invalidation storm A deploy flushes or invalidates caches at once and origin load spikes.
Questions
What causes cold start latency regression?
Both reports name a third-party cause. In report [1], types added to a new managed runtime version raised type loading cost at startup. In report [2], an SDK's startup import of the http module added init time on a newer JavaScript runtime.
What are the symptoms of cold start latency regression?
The first invoke of a minimal serverless function was 5 to 10 percent slower on the new runtime version [1]. Function init duration rose from about 204 ms to about 255 ms with the SDK on the newer JavaScript runtime [2].
Why did tests not catch cold start latency regression?
The runtime maintainers' startup measurements used container settings in which the new version was faster [1]. The low-CPU serverless cold start only showed the slowdown when measured directly.
Which test class catches cold start latency regression, and what does it miss?
Load and performance tests and canary checks are listed, both with the by-design label. A performance test misses the regression unless it reproduces the low-CPU serverless cold start [1].
Which public reports document cold start latency regression?
Two primary reports from two organisations document it. They were published on 2025-03-02 [2] and 2025-10-01 [1].
What should be checked before a release to prevent cold start latency regression?
PR-01 measures P90 cold start duration over 100 invokes on the new and current runtime versions. PR-02 runs that benchmark at the lowest memory and CPU setting used in production.
Release Incident Playbook (2026). Cold start latency regression: symptoms, cause, and the test that catches it, content version 1.0.0. https://releasefailures.com/incidents/cold-start-latency-regression/. Accessed 2026-10-21.