Skip to content

cnf-lint warns "python3.14" is not a valid Lambda Runtime #4367

@palomanel

Description

@palomanel

CloudFormation Lint Version

amazonwebservices.aws-toolkit-vscode:3.95.0

What operating system are you using?

Mac

Describe the bug

I'm developing a CloudFormation template on VSCode with the help of the AWS toolkit extension. An unexpected problem is reported, it seems cnf-lint thinks "python3.14" is not a valid Lambda Runtime.

Here's some example code:

  ExampleFunction:
    Type: AWS::Lambda::Function
    Properties:
      FunctionName: !Sub "${AWS::StackName}-example"
      Runtime: python3.14
      Handler: index.handler
      Role: !GetAtt LambdaExecutionRole.Arn
      Code:
        ZipFile: |
          import json
          def handler(event, context):
            return {
              'statusCode': 200,
              'body': json.dumps({'message': 'Deploy backend code separately'})
            }

The following problem is reported by cfn-lint(E3030):

'python3.14' is not one of ['dotnet6', 'dotnet8', 'dotnetcore1.0', 'dotnetcore2.0', 'dotnetcore2.1', 'dotnetcore3.1', 'go1.x', 'java11', 'java17', 'java21', 'java8', 'java8.al2', 'nodejs', 'nodejs10.x', 'nodejs12.x', 'nodejs14.x', 'nodejs16.x', 'nodejs18.x', 'nodejs20.x', 'nodejs22.x', 'nodejs24.x', 'nodejs4.3', 'nodejs4.3-edge', 'nodejs6.10', 'nodejs8.10', 'provided', 'provided.al2', 'provided.al2023', 'python2.7', 'python3.10', 'python3.11', 'python3.12', 'python3.13', 'python3.6', 'python3.7', 'python3.8', 'python3.9', 'ruby2.5', 'ruby2.7', 'ruby3.2', 'ruby3.3', 'ruby3.4']

python3.14 has been available as a Lamda runtime since the end of 2025.

Expected behavior

No error should be raised by cfn-lint.

Reproduction template

  ExampleFunction:
    Type: AWS::Lambda::Function
    Properties:
      FunctionName: !Sub "${AWS::StackName}-example"
      Runtime: python3.14
      Handler: index.handler
      Role: !GetAtt LambdaExecutionRole.Arn
      Code:
        ZipFile: |
          import json
          def handler(event, context):
            return {
              'statusCode': 200,
              'body': json.dumps({'message': 'Deploy backend code separately'})
            }

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions