Skip to main content

Validation Rules

deployless runs 30+ compile-time validations before generating any output. If any rule fails, the build is halted with a clear error code.

Error codes​

CodeRule
E00Resource validations: DynamoDB (key types, GSI, projection INCLUDE), S3 (bucket name DNS-compliant, 3–63 chars, no underscores), SQS (queue name, visibility_timeout, message_retention, max_receive_count), KMS (alias format, valid key_usage/key_spec, ECC/SIGN_VERIFY incompatibilities), SSMParameter (name starts with /, valid chars, valid type, non-empty value)
E01stage can only contain alphanumeric characters
E02api.endpoint_type must be REGIONAL, EDGE, or PRIVATE
E03globals.log_retention must be a valid CloudWatch value
E04allow_credentials: true is not compatible with allow_origin: "*"
E05Feature memory out of range (128–10240 MB)
E06Feature timeout out of range (1–900 s)
E07No routes found in feature's routes.py
E08Invalid cron schedule format
E09Cron memory out of range (128–10240 MB)
E10Cron timeout out of range (1–900 s)
E11api.auth.type must be cognito, lambda, or iam
E12api.auth (cognito): user_pool_arn is required
E13api.auth (lambda): function_arn is required
E14api.usage_plan: rate and burst are required
E15api.usage_plan: period is required if quota is set
E16api.usage_plan.period must be DAY, WEEK, or MONTH
E17api.domain: domain_name is required
E18api.minimum_compression_size must be an integer >= 0
E19ephemeral_storage out of range (512–10240 MB)
E20reserved_concurrency must be >= 0
E21provisioned_concurrency must be >= 1
E22log_retention per feature must be a valid CloudWatch value
E23alarms.sns_topic_arn must be a valid ARN (starts with arn:)
E24alarms.duration.threshold_pct must be between 1 and 100
E25lambda_function memory out of range (128–10240 MB)
E26lambda_function timeout out of range (1–900 s)
E27Specified env_file does not exist
E28SECRET_ variable with empty value
E29Invalid secrets_kms format
E30Invalid resource permission level
E31init_app entry is not a string or is not in module.function format
E32Unresolved environment variable in deployless.yaml — referenced ${VAR} is not defined and has no default
E33Duplicate route: same HTTP method + path defined in two different features

Warning codes​

CodeRule
W01Replacement-causing change detected — a resource property that is immutable after creation was modified. Applies to: DynamoDB (key schema, table name), S3 (bucket name), SQS (queue name, FIFO flag), KMS (key usage, key spec), SSM (parameter name, type). CloudFormation cannot replace custom-named resources in-place; the build is halted before deploy.