# Variables no longer resolved in custom scriptHooks?

**URL:** <https://forum.serverless.com/t/variables-no-longer-resolved-in-custom-scripthooks/14343>\
**Category:** Serverless Framework\
**Created:** [March 11, 2021, 1:42pm UTC](https://forum.serverless.com/t/variables-no-longer-resolved-in-custom-scripthooks/14343 "2021-03-11T13:42:06Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![markcastle](https://yyz2.discourse-cdn.com/flex036/user_avatar/forum.serverless.com/markcastle/32/4852_2.png) [@markcastle](https://forum.serverless.com/u/markcastle)\
**Post date:** [March 11, 2021, 1:42pm UTC](https://forum.serverless.com/t/variables-no-longer-resolved-in-custom-scripthooks/14343/1 "2021-03-11T13:42:06Z")

</div>

Hi All,

I was on version 2.15.0 and using…

```
custom:
  scriptHooks: 
    aws:deploy:deploy:updateStack: # todo: Automatically resolve the API Id's below..
      # 1) Create the necessary folder structure for the documentation
      - if not exist docs\html\${self:service} mkdir docs\html\${self:service}

```

…which worked fine but after updating to the latest (2.29.0) I get the following error on deploy…

```
 Error ---------------------------------------------------

  Error: Command failed: if not exist docs\html\${self:service} mkdir docs\html\${self:service}
      at checkExecSyncError (child_process.js:611:11)
      at Object.execSync (child_process.js:647:15)
      at childProcess.execSync (pkg/prelude/bootstrap.js:1507:30)
      at Scriptable.runCommand (J:\Dev\my-service\node_modules\serverless-scriptable-plugin\index.js:70:12)
      at J:\Dev\my-service\node_modules\serverless-scriptable-plugin\index.js:60:21
      at tryCatcher (J:\Dev\my-service\node_modules\bluebird\js\release\util.js:16:23)
      at Object.gotValue (J:\Dev\my-service\node_modules\bluebird\js\release\reduce.js:166:18)
      at Object.gotAccum (J:\Dev\my-service\node_modules\bluebird\js\release\reduce.js:155:25)
      at Object.tryCatcher (J:\Dev\my-service\node_modules\bluebird\js\release\util.js:16:23)
      at Promise._settlePromiseFromHandler (J:\Dev\my-service\node_modules\bluebird\js\release\promise.js:547:31)
      at Promise._settlePromise (J:\Dev\my-service\node_modules\bluebird\js\release\promise.js:604:18)
      at Promise._settlePromiseCtx (J:\Dev\my-service\node_modules\bluebird\js\release\promise.js:641:10)
      at _drainQueueStep (J:\Dev\my-service\node_modules\bluebird\js\release\async.js:97:12)
      at _drainQueue (J:\Dev\my-service\node_modules\bluebird\js\release\async.js:86:9)
      at Async._drainQueues (J:\Dev\my-service\node_modules\bluebird\js\release\async.js:102:5)
      at Immediate.Async.drainQueues [as _onImmediate] (J:\Dev\my-service\node_modules\bluebird\js\release\async.js:15:14)
      at processImmediate (internal/timers.js:456:21)
      at process.topLevelDomainCallback (domain.js:137:15)

     For debugging logs, run again after setting the "SLS_DEBUG=*" environment variable.

  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.4.0
     Framework Version: 2.29.0 (standalone)
     Plugin Version: 4.5.0
     SDK Version: n/a
     Components Version: 3.7.2

```

In a nutshell… ${self:service} is no longer resolving before the command there is run.

…it was really useful to resolve variable names for plugins such as serverless-scriptable-plugin, would anyone have any idea why this variable is no longer resolving prior to the plugin running?

Thanks in advance.
