{"record":{"id":"2b7499012997ee43","repo":"serverless/serverless","slug":"aws-vpc-nat-gateway-create-failed","errorCode":"AWS_VPC_NAT_GATEWAY_CREATE_FAILED","errorMessage":"Failed to create NAT gateways","messagePattern":"Failed to create NAT gateways","errorType":"error_code","errorClass":"ServerlessError","httpStatus":null,"severity":"error","filePath":"packages/engine/src/lib/aws/vpc.js","lineNumber":623,"sourceCode":"              {\n                Key: 'Name',\n                Value: `${namespace}-nat-gateway`,\n              },\n              {\n                Key: 'Namespace',\n                Value: namespace,\n              },\n            ],\n          },\n        ],\n      }),\n    )\n\n    if (\n      createNatGatewayResponse.$metadata.httpStatusCode !== 200 ||\n      !createNatGatewayResponse.NatGateway?.NatGatewayId\n    ) {\n      throw new ServerlessError(\n        'Failed to create NAT gateways',\n        'AWS_VPC_NAT_GATEWAY_CREATE_FAILED',\n      )\n    }\n\n    logger.debug(`Created NAT gateway for namespace ${namespace}`)\n    await setTimeout(10000)\n    return createNatGatewayResponse.NatGateway.NatGatewayId\n  }\n\n  /**\n   * Create an elastic IP for the given namespace.\n   * @param {string} namespace\n   * @returns {Promise<string>} The elastic IP allocation ID\n   */\n  async _createElasticIp(namespace) {\n    const describeAddressesResponse = await this.client.send(\n      new DescribeAddressesCommand({","sourceCodeStart":605,"sourceCodeEnd":641,"githubUrl":"https://github.com/serverless/serverless/blob/b9d7ea51c8cce57cff1207964b9b71123673081f/packages/engine/src/lib/aws/vpc.js#L605-L641","documentation":"Error \"Failed to create NAT gateways\" thrown in serverless/serverless.","triggerScenarios":"Thrown at packages/engine/src/lib/aws/vpc.js:623 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Verify the subnets exist and are in an available state, then retry the deployment.","Ensure your IAM permissions include ec2:CreateNatGateway and that you have available elastic IPs."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"b9d7ea51c8cce57cff1207964b9b71123673081f","analyzedAt":"2026-08-13T04:14:40.386Z","schemaVersion":2},"datasetVersion":"2026-08-13T09:17:06.757Z"}