Serverless-offline: TypeError: serviceRuntime.startsWith is not a function in 4.9.4

Created on 13 Apr 2019  路  9Comments  路  Source: dherault/serverless-offline

I was using 3.18.0 and upgraded to 4.9.4 and I get this error right at the start

server Serverless: Starting Offline: development/eu-west-1.
server [offline] options: { host: 'localhost',
server   location: '.webpack/service',
server   port: 3000,
server   prefix: '/',
server   stage: 'development',
server   region: 'eu-west-1',
server   noTimeout: false,
server   noEnvironment: false,
server   resourceRoutes: false,
server   printOutput: false,
server   httpsProtocol: '',
server   skipCacheInvalidation: false,
server   cacheInvalidationRegex: /node_modules/,
server   exec: '',
server   noAuth: false,
server   corsAllowOrigin: [ '*' ],
server   corsExposedHeaders: [ 'WWW-Authenticate', 'Server-Authorization' ],
server   corsAllowHeaders: [ 'accept', 'content-type', 'x-api-key', 'authorization' ],
server   corsAllowCredentials: true,
server   apiKey: 'd41d8cd98f00b204e9800998ecf8427e',
server   useSeparateProcesses: false,
server   preserveTrailingSlash: false,
server   disableCookieValidation: false,
server   enforceSecureCookies: false,
server   providedRuntime: true,
server   disableModelValidation: false,
server   dontPrintOutput: true,
server   corsConfig:
server    { origin: [ '*' ],
server      headers: [ 'accept', 'content-type', 'x-api-key', 'authorization' ],
server      credentials: true,
server      exposedHeaders: [ 'WWW-Authenticate', 'Server-Authorization' ] } }
server  
server   Type Error ---------------------------------------------
server  
server   serviceRuntime.startsWith is not a function
server  
server      For debugging logs, run again after setting the "SLS_DEBUG=*" environment variable.
server  
server   Stack Trace --------------------------------------------
server  
server TypeError: serviceRuntime.startsWith is not a function
server     at Offline._createRoutes (/Users/vadorequest/dev/loan-advisor/node_modules/serverless-offline/src/index.js:376:26)
server     at Offline._buildServer (/Users/vadorequest/dev/loan-advisor/node_modules/serverless-offline/src/index.js:230:10)
server     at Offline.start (/Users/vadorequest/dev/loan-advisor/node_modules/serverless-offline/src/index.js:168:33)
server     at BbPromise.reduce (/Users/vadorequest/dev/loan-advisor/node_modules/serverless/lib/classes/PluginManager.js:408:55)
server From previous event:
server     at PluginManager.invoke (/Users/vadorequest/dev/loan-advisor/node_modules/serverless/lib/classes/PluginManager.js:408:22)
server     at PluginManager.run (/Users/vadorequest/dev/loan-advisor/node_modules/serverless/lib/classes/PluginManager.js:439:17)
server     at variables.populateService.then (/Users/vadorequest/dev/loan-advisor/node_modules/serverless/lib/Serverless.js:109:33)
server     at runCallback (timers.js:705:18)
server     at tryOnImmediate (timers.js:676:5)
server     at processImmediate (timers.js:658:5)
server     at process.topLevelDomainCallback (domain.js:120:23)
server From previous event:
server     at Serverless.run (/Users/vadorequest/dev/loan-advisor/node_modules/serverless/lib/Serverless.js:96:6)
server     at serverless.init.then (/Users/vadorequest/dev/loan-advisor/node_modules/serverless/bin/serverless:43:28)
server     at /Users/vadorequest/dev/loan-advisor/node_modules/graceful-fs/graceful-fs.js:111:16
server     at /Users/vadorequest/dev/loan-advisor/node_modules/graceful-fs/graceful-fs.js:45:10
server     at FSReqWrap.args [as oncomplete] (fs.js:140:20)
server From previous event:
server     at initializeErrorReporter.then (/Users/vadorequest/dev/loan-advisor/node_modules/serverless/bin/serverless:43:6)
server     at runCallback (timers.js:705:18)
server     at tryOnImmediate (timers.js:676:5)
server     at processImmediate (timers.js:658:5)
server     at process.topLevelDomainCallback (domain.js:120:23)
server From previous event:
server     at /Users/vadorequest/dev/loan-advisor/node_modules/serverless/bin/serverless:28:46
server     at Object.<anonymous> (/Users/vadorequest/dev/loan-advisor/node_modules/serverless/bin/serverless:67:4)
server     at Module._compile (internal/modules/cjs/loader.js:701:30)
server     at Object.Module._extensions..js (internal/modules/cjs/loader.js:712:10)
server     at Module.load (internal/modules/cjs/loader.js:600:32)
server     at tryModuleLoad (internal/modules/cjs/loader.js:539:12)
server     at Function.Module._load (internal/modules/cjs/loader.js:531:3)
server     at Function.Module.runMain (internal/modules/cjs/loader.js:754:12)
server     at startup (internal/bootstrap/node.js:283:19)
server     at bootstrapNodeJSCore (internal/bootstrap/node.js:622:3)
server  
server   Get Support --------------------------------------------
server      Docs:          docs.serverless.com
server      Bugs:          github.com/serverless/serverless/issues
server      Issues:        forum.serverless.com
server  
server   Your Environment Information ---------------------------
server      OS:                     darwin
server      Node Version:           10.15.3
server      Serverless Version:     1.40.0
server  
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
server yarn start:server exited with code 1

is something wrong with the latest version?

bug

Most helpful comment

Note that this happens when using a custom runtime with the --providedRuntime option.
...
Ahhhh I figured it out, it's related to the --providedRuntime option, I was using it that way:

serverless offline start --dontPrintOutput --providedRuntime

Instead of

serverless offline start --dontPrintOutput --providedRuntime 10.15.3

Documentation should be improved, and when providedRuntime is provided, a proper check should be ensured to avoid such dumb misconfiguration :)

All 9 comments

What is your nodejs version ? I looks like a nodejs older version.

6.10.3, maybe a polyfill for node 6 would be enough to fix this, or if you don't want to support that version then upgrade the package.json and explicitely state the incompatibility with the nodejs 6 runtime.

I'd prefer it to be compatible with node6 ^-^ :)

It is not 馃
I'll mark the imcomptability for next sprint.

Too bad for me then! I'll keep using the 3.x version which is compatible with node 6.

@dherault Actually, if you look at the bottom of the logs:

server   Your Environment Information ---------------------------
server      OS:                     darwin
server      Node Version:           10.15.3

I'm using node 10.15.3. I tried again just now and met the same error. I think this should be re-opened.

Note that this happens when using a custom runtime with the --providedRuntime option.
...
Ahhhh I figured it out, it's related to the --providedRuntime option, I was using it that way:

serverless offline start --dontPrintOutput --providedRuntime

Instead of

serverless offline start --dontPrintOutput --providedRuntime 10.15.3

Documentation should be improved, and when providedRuntime is provided, a proper check should be ensured to avoid such dumb misconfiguration :)

thanks for pointing the answer @Vadorequest
had same issue and only found your answer as solution

re-opening just as a reminder to check if the issue still exists.

this is essentially "fixed" in v6.0.0-alpha, as the --providedRuntime option was removed.

migration path: https://github.com/dherault/serverless-offline/issues/768

Was this page helpful?
0 / 5 - 0 ratings

Related issues

MEGApixel23 picture MEGApixel23  路  4Comments

stunningpixels picture stunningpixels  路  3Comments

stonebraker picture stonebraker  路  3Comments

davidroman0O picture davidroman0O  路  4Comments

ozbillwang picture ozbillwang  路  4Comments