Lambda runtimes
Which Lambda runtime identifiers Overcast accepts, what each rejection means, how AWS's deprecation dates are observed, and which runtimes have no execution image.
Which runtime identifiers Lambda accepts, and what a rejection means.
Identifiers are AWS’s modelled Runtime enum; the deprecation, block-create and
block-update dates are AWS’s published runtime lifecycle dates. Request
validation, the runtime-to-image mapping and the console’s create wizard all
read the same table.
What each rejection means
| Situation | Response |
|---|---|
Not a value of the modelled Runtime enum, and not a runtime-version ARN | 400 InvalidParameterValueException listing every modelled value |
| Modelled, but past AWS’s deprecation phase for the operation | 400 InvalidParameterValueException naming the recommended successor |
| Modelled and accepted by AWS, but Overcast has no execution image for it | 501 NotImplemented — an emulator gap; nothing is persisted |
A missing execution image answers 501 rather than an invented 400: the
request was valid and AWS would have accepted it. The check applies to Zip
packages; an Image function brings its own.
Deprecation is observed in three steps
AWS retires a runtime in three steps and Overcast observes each against the current date:
| Date | Effect |
|---|---|
| Deprecation date | Support ends; the runtime stays deployable and invokable |
| Block function create | CreateFunction starts refusing it |
| Block function update | UpdateFunctionConfiguration starts refusing it |
So a deprecated runtime is not automatically refused — python3.9 lost support in
December 2025 but stays deployable until its block-create date.
Which runtimes have an image
Overcast maps an official base image to every runtime AWS still accepts for
CreateFunction, across Node.js, Python, Java (including the Amazon Linux 2023
variants), .NET, Ruby and the provided custom runtimes. Runtimes AWS has already
blocked from CreateFunction — go1.x, java8, python3.7 and older,
nodejs14.x and older, the dotnetcore family, ruby2.x and provided — carry
no image, so the 400 above is the only response they can produce.
LAMBDA_SEED_RUNTIME_IMAGES=true pre-pulls only the images for runtimes AWS still
supports; a deprecated-but-deployable runtime is pulled on demand at its first
cold start. GET /_overcast/lambda/runtimes returns the catalogue with each
runtime’s supported, deprecated, createBlocked and updateBlocked flags.
Related
- Lambda — quick start and what works
- Lambda limitations — the divergence table
- Lambda examples — container images, layers, extensions
- Lambda troubleshooting — throttles, layer errors, extension endpoints
- Environment variable reference — every
LAMBDA_*variable