serverless / serverless/serverless

Deploy of new service with tracing.apiGateway enabled fails

Open
#6,081 0 comments 5 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
JavaScript
Stars
46.9k
Forks
5.7k
Avg merge
10h 7m
Merged PRs (30d)
57

Description

This is a Bug Report

Description

Trying to deploy a new service with tracing.apiGateway enabled fails:

An error occurred: ApiGatewayUsagePlan - API Stage not found: ...:dev (Service: AmazonApiGateway; Status Code: 404; Error Code: NotFoundException; Request ID: ...).

serverless.yaml:

service: some-service

provider:
  name: aws
  tracing:
    lambda: true
    apiGateway: true
  layers:
    - some-layer
  runtime: nodejs8.10
  logRetentionInDays: 30
  apiKeys:
    - ${self:service}-${self:provider.stage}

plugins:
  - serverless-prune-plugin
  - serverless-offline
  - serverless-log-forwarding

functions:
   ...

stacktrace:

ServerlessError: An error occurred: ApiGatewayUsagePlan - API Stage not found: ...:dev (Service: AmazonApiGateway; Status Code: 404; Error Code: NotFoundException; Request ID: ...).
    at provider.request.then (/usr/lib/node_modules/serverless/lib/plugins/aws/lib/monitorStack.js:118:33)
From previous event:
    at AwsDeploy.monitorStack (/usr/lib/node_modules/serverless/lib/plugins/aws/lib/monitorStack.js:31:12)
    at provider.request.then (/usr/lib/node_modules/serverless/lib/plugins/aws/lib/updateStack.js:105:30)
From previous event:
    at AwsDeploy.update (/usr/lib/node_modules/serverless/lib/plugins/aws/lib/updateStack.js:105:8)
From previous event:
    at AwsDeploy.BbPromise.bind.then (/usr/lib/node_modules/serverless/lib/plugins/aws/lib/updateStack.js:122:12)
From previous event:
    at AwsDeploy.updateStack (/usr/lib/node_modules/serverless/lib/plugins/aws/lib/updateStack.js:116:8)
From previous event:
    at AwsDeploy.BbPromise.bind.then (/usr/lib/node_modules/serverless/lib/plugins/aws/deploy/index.js:127:39)
From previous event:
    at Object.aws:deploy:deploy:updateStack [as hook] (/usr/lib/node_modules/serverless/lib/plugins/aws/deploy/index.js:123:10)
    at BbPromise.reduce (/usr/lib/node_modules/serverless/lib/classes/PluginManager.js:408:55)
From previous event:
    at PluginManager.invoke (/usr/lib/node_modules/serverless/lib/classes/PluginManager.js:408:22)
    at PluginManager.spawn (/usr/lib/node_modules/serverless/lib/classes/PluginManager.js:426:17)
    at AwsDeploy.BbPromise.bind.then (/usr/lib/node_modules/serverless/lib/plugins/aws/deploy/index.js:93:48)
From previous event:
    at Object.deploy:deploy [as hook] (/usr/lib/node_modules/serverless/lib/plugins/aws/deploy/index.js:89:10)
    at BbPromise.reduce (/usr/lib/node_modules/serverless/lib/classes/PluginManager.js:408:55)
From previous event:
    at PluginManager.invoke (/usr/lib/node_modules/serverless/lib/classes/PluginManager.js:408:22)
    at PluginManager.run (/usr/lib/node_modules/serverless/lib/classes/PluginManager.js:439:17)
    at variables.populateService.then (/usr/lib/node_modules/serverless/lib/Serverless.js:109:33)
    at runCallback (timers.js:763:18)
    at tryOnImmediate (timers.js:734:5)
    at processImmediate (timers.js:716:5)
    at process.topLevelDomainCallback (domain.js:102:23)
From previous event:
    at Serverless.run (/usr/lib/node_modules/serverless/lib/Serverless.js:96:6)
    at serverless.init.then (/usr/lib/node_modules/serverless/bin/serverless:43:28)
    at /usr/lib/node_modules/serverless/node_modules/graceful-fs/graceful-fs.js:111:16
    at /usr/lib/node_modules/serverless/node_modules/graceful-fs/graceful-fs.js:45:10
    at FSReqWrap.oncomplete (fs.js:153:20)
From previous event:
    at initializeErrorReporter.then (/usr/lib/node_modules/serverless/bin/serverless:43:6)
    at runCallback (timers.js:763:18)
    at tryOnImmediate (timers.js:734:5)
    at processImmediate (timers.js:716:5)
    at process.topLevelDomainCallback (domain.js:102:23)
From previous event:
    at /usr/lib/node_modules/serverless/bin/serverless:28:46
    at Object.<anonymous> (/usr/lib/node_modules/serverless/bin/serverless:65:4)
    at Module._compile (internal/modules/cjs/loader.js:654:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:665:10)
    at Module.load (internal/modules/cjs/loader.js:566:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:506:12)
    at Function.Module._load (internal/modules/cjs/loader.js:498:3)
    at Function.Module.runMain (internal/modules/cjs/loader.js:695:10)
    at startup (internal/bootstrap/node.js:201:19)
    at bootstrapNodeJSCore (internal/bootstrap/node.js:516:3)

without apiGateway: true it works.

Additional Data

  • Serverless Framework Version you're using: 1.41.1
  • Operating System: Fedora 29
  • Stack Trace:
  • Provider Error messages:

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the deployment from the shown serverless.yaml with tracing.apiGateway enabled, then read lib/plugins/aws/lib/monitorStack.js and updateStack.js, the entry points in the stack trace. Trace how the API Gateway stage and usage plan are handled during deployment. Done means a new service deploys successfully with apiGateway tracing enabled.

Written by the indexing model from the issue text.

Assessment

Tech stack
aws, javascript, node.js
Domain
api, cloud
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.