Skip to content

Deploy fails just after adding the plugin #439

@v1nc3n4

Description

@v1nc3n4

This is a Bug Report

Description

For bug reports:

  • What went wrong?
    Deploying in localstack crashes just after adding the serverless-step-functions plugin without any configuration.

  • What was the config you used?

service: app-serverless

frameworkVersion: 2.46.0
unresolvedVariablesNotificationMode: error
variablesResolutionMode: 20210326

provider:
    name: aws
    runtime: nodejs14.x
    stage: local
    profile: local
    region: us-east-1
    lambdaHashingVersion: 20201221
    memorySize: 128

plugins:
    - serverless-offline
    - serverless-bundle
    - serverless-localstack
    - serverless-jest-plugin
    - serverless-plugin-log-retention
    ########## Adding this line leads to crash during deploy ##########
    - serverless-step-functions

custom:
    bundle:
        linting: false
    localstack:
        stages:
            - local
        host: http://localhost
        edgePort: 4566
        lambda:
            mountCode: false
        debug: true
        docker:
            sudo: false

package:
    individually: true

functions:
    myFunction:
        handler: src/features/my-function.handle
        events:
            -   sqs: arn:aws:sqs:${self:provider.region}:000000000000:queue-${sls:stage}-event
  • What stacktrace or error message from your provider did you see?
D:\app-serverless> npm run deploy:local

> app-serverless@1.0.0 deploy:local D:\app-serverless
> rimraf .serverless && npm run sls deploy -- --stage local --region us-east-1

> app-serverless@1.0.0 sls
> serverless "deploy" "--stage" "local" "--region" "us-east-1"

Serverless: Load command interactiveCli
Serverless: Load command config
Serverless: Load command config:credentials
Serverless: Load command config:tabcompletion
Serverless: Load command config:tabcompletion:install
Serverless: Load command config:tabcompletion:uninstall
Serverless: Load command create
Serverless: Load command install
Serverless: Load command package
Serverless: Load command deploy
Serverless: Load command deploy:function
Serverless: Load command deploy:list
Serverless: Load command deploy:list:functions
Serverless: Load command invoke
Serverless: Load command invoke:local
Serverless: Load command info
Serverless: Load command logs
Serverless: Load command metrics
Serverless: Load command print
Serverless: Load command remove
Serverless: Load command rollback
Serverless: Load command rollback:function
Serverless: Load command slstats
Serverless: Load command plugin
Serverless: Load command plugin
Serverless: Load command plugin:install
Serverless: Load command plugin
Serverless: Load command plugin:uninstall
Serverless: Load command plugin
Serverless: Load command plugin:list
Serverless: Load command plugin
Serverless: Load command plugin:search
Serverless: Load command config
Serverless: Load command config:credentials
Serverless: Load command upgrade
Serverless: Load command uninstall
Serverless: Load command offline
Serverless: Load command offline:start
Serverless: Load command webpack
Serverless: config.options_stage: local
Serverless: serverless.service.custom.stage: undefined
Serverless: serverless.service.provider.stage: local
Serverless: config.stage: local
Serverless: Using serverless-localstack
Serverless: Reconfiguring service acm to use http://localhost:4566
Serverless: Reconfiguring service amplify to use http://localhost:4566
Serverless: Reconfiguring service apigateway to use http://localhost:4566
Serverless: Reconfiguring service apigatewayv2 to use http://localhost:4566
Serverless: Reconfiguring service application-autoscaling to use http://localhost:4566
Serverless: Reconfiguring service appsync to use http://localhost:4566
Serverless: Reconfiguring service athena to use http://localhost:4566
Serverless: Reconfiguring service autoscaling to use http://localhost:4566
Serverless: Reconfiguring service batch to use http://localhost:4566
Serverless: Reconfiguring service cloudformation to use http://localhost:4566
Serverless: Reconfiguring service cloudfront to use http://localhost:4566
Serverless: Reconfiguring service cloudsearch to use http://localhost:4566
Serverless: Reconfiguring service cloudtrail to use http://localhost:4566
Serverless: Reconfiguring service cloudwatch to use http://localhost:4566
Serverless: Reconfiguring service cloudwatchlogs to use http://localhost:4566
Serverless: Reconfiguring service codecommit to use http://localhost:4566
Serverless: Reconfiguring service cognito-idp to use http://localhost:4566
Serverless: Reconfiguring service cognito-identity to use http://localhost:4566
Serverless: Reconfiguring service docdb to use http://localhost:4566
Serverless: Reconfiguring service dynamodb to use http://localhost:4566
Serverless: Reconfiguring service dynamodbstreams to use http://localhost:4566
Serverless: Reconfiguring service ec2 to use http://localhost:4566
Serverless: Reconfiguring service ecr to use http://localhost:4566
Serverless: Reconfiguring service ecs to use http://localhost:4566
Serverless: Reconfiguring service eks to use http://localhost:4566
Serverless: Reconfiguring service elasticache to use http://localhost:4566
Serverless: Reconfiguring service elasticbeanstalk to use http://localhost:4566
Serverless: Reconfiguring service elb to use http://localhost:4566
Serverless: Reconfiguring service elbv2 to use http://localhost:4566
Serverless: Reconfiguring service emr to use http://localhost:4566
Serverless: Reconfiguring service es to use http://localhost:4566
Serverless: Reconfiguring service events to use http://localhost:4566
Serverless: Reconfiguring service firehose to use http://localhost:4566
Serverless: Reconfiguring service glacier to use http://localhost:4566
Serverless: Reconfiguring service glue to use http://localhost:4566
Serverless: Reconfiguring service iam to use http://localhost:4566
Serverless: Reconfiguring service iot to use http://localhost:4566
Serverless: Reconfiguring service iotanalytics to use http://localhost:4566
Serverless: Reconfiguring service iotevents to use http://localhost:4566
Serverless: Reconfiguring service iot-data to use http://localhost:4566
Serverless: Reconfiguring service iot-jobs-data to use http://localhost:4566
Serverless: Reconfiguring service kafka to use http://localhost:4566
Serverless: Reconfiguring service kinesis to use http://localhost:4566
Serverless: Reconfiguring service kinesisanalytics to use http://localhost:4566
Serverless: Reconfiguring service kms to use http://localhost:4566
Serverless: Reconfiguring service lambda to use http://localhost:4566
Serverless: Reconfiguring service logs to use http://localhost:4566
Serverless: Reconfiguring service mediastore to use http://localhost:4566
Serverless: Reconfiguring service neptune to use http://localhost:4566
Serverless: Reconfiguring service organizations to use http://localhost:4566
Serverless: Reconfiguring service qldb to use http://localhost:4566
Serverless: Reconfiguring service rds to use http://localhost:4566
Serverless: Reconfiguring service redshift to use http://localhost:4566
Serverless: Reconfiguring service route53 to use http://localhost:4566
Serverless: Reconfiguring service s3 to use http://localhost:4566
Serverless: Reconfiguring service s3control to use http://localhost:4566
Serverless: Reconfiguring service sagemaker to use http://localhost:4566
Serverless: Reconfiguring service sagemaker-runtime to use http://localhost:4566
Serverless: Reconfiguring service secretsmanager to use http://localhost:4566
Serverless: Reconfiguring service ses to use http://localhost:4566
Serverless: Reconfiguring service sns to use http://localhost:4566
Serverless: Reconfiguring service sqs to use http://localhost:4566
Serverless: Reconfiguring service ssm to use http://localhost:4566
Serverless: Reconfiguring service stepfunctions to use http://localhost:4566
Serverless: Reconfiguring service sts to use http://localhost:4566
Serverless: Reconfiguring service timestream to use http://localhost:4566
Serverless: Reconfiguring service transfer to use http://localhost:4566
Serverless: Reconfiguring service xray to use http://localhost:4566
Serverless: Load command create
Serverless: Load command create:test
Serverless: Load command create:function
Serverless: Load command invoke
Serverless: Load command invoke:test
Serverless: Load command invoke
Serverless: Load command invoke:stepf
Serverless: Load command login
Serverless: Load command logout
Serverless: Load command generate-event
Serverless: Load command test
Serverless: Load command dashboard
Serverless: Load command output
Serverless: Load command output:get
Serverless: Load command output:list
Serverless: Load command param
Serverless: Load command param:get
Serverless: Load command param:list
Serverless: Load command studio
Serverless: Deprecation warning: CLI options definitions were upgraded with "type" property (which could be one of "string", "boolean", "multiple"). Below listed plugins do not predefine type for introduced options:
             - ServerlessJestPlugin for "function", "path", "handler", "reporter", "reporter-options"
             - ServerlessStepFunctions for "name", "data", "path", "stage", "region"
            Please report this issue in plugin issue tracker.
            Starting with next major release, this will be communicated with a thrown error.
            More Info: https://www.serverless.com/framework/docs/deprecations/#CLI_OPTIONS_SCHEMA
Serverless: Skipping variables resolution with old resolver (new resolver reported no more variables to resolve)
Serverless: Invoke deploy
Serverless: Invoke package
Serverless: Invoke aws:common:validate
Serverless: config.options_stage: local
Serverless: serverless.service.custom.stage: undefined
Serverless: serverless.service.provider.stage: local
Serverless: config.stage: local
Serverless: config.options_stage: local
Serverless: serverless.service.custom.stage: undefined
Serverless: serverless.service.provider.stage: local
Serverless: config.stage: local
Serverless: Invoke aws:common:cleanupTempDir

 Serverless Error ----------------------------------------

  ServerlessError: Trying to populate non string value into a string for variable ${sls:stage}. Please make sure the value of the property is a string.
      at Variables.populateVariable (D:\app-serverless\node_modules\serverless\lib\classes\Variables.js:457:13)
      at Variables.renderMatches (D:\app-serverless\node_modules\serverless\lib\classes\Variables.js:379:21)
      at D:\app-serverless\node_modules\serverless\lib\classes\Variables.js:399:31
      at tryCatcher (D:\app-serverless\node_modules\bluebird\js\release\util.js:16:23)
      at Promise._settlePromiseFromHandler (D:\app-serverless\node_modules\bluebird\js\release\promise.js:547:31)
      at Promise._settlePromise (D:\app-serverless\node_modules\bluebird\js\release\promise.js:604:18)
      at Promise._settlePromise0 (D:\app-serverless\node_modules\bluebird\js\release\promise.js:649:10)
      at Promise._settlePromises (D:\app-serverless\node_modules\bluebird\js\release\promise.js:729:18)
      at Promise._fulfill (D:\app-serverless\node_modules\bluebird\js\release\promise.js:673:18)
      at PromiseArray._resolve (D:\app-serverless\node_modules\bluebird\js\release\promise_array.js:127:19)
      at PromiseArray._promiseFulfilled (D:\app-serverless\node_modules\bluebird\js\release\promise_array.js:145:14)
      at Promise._settlePromise (D:\app-serverless\node_modules\bluebird\js\release\promise.js:609:26)
      at Promise._settlePromise0 (D:\app-serverless\node_modules\bluebird\js\release\promise.js:649:10)
      at Promise._settlePromises (D:\app-serverless\node_modules\bluebird\js\release\promise.js:729:18)
      at _drainQueueStep (D:\app-serverless\node_modules\bluebird\js\release\async.js:93:12)
      at _drainQueue (D:\app-serverless\node_modules\bluebird\js\release\async.js:86:9)
      at Async._drainQueues (D:\app-serverless\node_modules\bluebird\js\release\async.js:102:5)
      at Immediate.Async.drainQueues [as _onImmediate] (D:\app-serverless\node_modules\bluebird\js\release\async.js:15:14)
      at processImmediate (internal/timers.js:461:21)

  Get Support --------------------------------------------
     Docs:          docs.serverless.com
     Bugs:          github.com/serverless/serverless/issues
     Issues:        forum.serverless.com

  Your Environment Information ---------------------------
     Operating System:          win32
     Node Version:              14.15.4
     Framework Version:         2.46.0 (local)
     Plugin Version:            5.4.0
     SDK Version:               4.2.3
     Components Version:        3.12.0

npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! app-serverless@1.0.0 deploy:local: `rimraf .serverless && npm run sls deploy -- --stage local --region us-east-1`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the app-serverless@1.0.0 deploy:local script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\<username>\AppData\Roaming\npm-cache\_logs\2021-06-25T11_15_25_980Z-debug.log

Additional Data

  • Serverless Framework Core Version you're using: 2.46.0
  • The Plugin Version you're using: 2.30.0
  • Operating System: Win10 64 bits Pro
  • Localstack: 0.12.11
  • Serverless Localstack: 0.4.32

When the serverless-step-functions plugin is disabled - by commenting the line, deploy runs smoothly. What am I doing wrong just with a so simple modification?
Thanks in advance for your help!
BR

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions