# Requires capabilities error serverless deploy

**URL:** <https://forum.serverless.com/t/requires-capabilities-error-serverless-deploy/871>\
**Category:** Serverless Framework\
**Tags:** aws, release\
**Created:** [December 2, 2016, 10:12pm UTC](https://forum.serverless.com/t/requires-capabilities-error-serverless-deploy/871 "2016-12-02T22:12:00Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![mohitg](https://yyz2.discourse-cdn.com/flex036/user_avatar/forum.serverless.com/mohitg/32/320_2.png) [@mohitg](https://forum.serverless.com/u/mohitg)\
**Post date:** [December 2, 2016, 10:12pm UTC](https://forum.serverless.com/t/requires-capabilities-error-serverless-deploy/871/1 "2016-12-02T22:12:00Z")

</div>

I am defining custom roles in serverless.yaml and got the below error on serverless deploy

`Requires capabilities : [CAPABILITY_NAMED_IAM]`

Where to define the capability in serverless.yaml to resolve the error ?

---

<div class="post-metadata">

**Author:** ![krisalexander200](https://yyz2.discourse-cdn.com/flex036/user_avatar/forum.serverless.com/krisalexander200/32/325_2.png) [@krisalexander200](https://forum.serverless.com/u/krisalexander200)\
**Post date:** [December 3, 2016, 6:24am UTC](https://forum.serverless.com/t/requires-capabilities-error-serverless-deploy/871/2 "2016-12-03T06:24:37Z")

</div>

how are you defining a custom role?

---

<div class="post-metadata">

**Author:** ![mohitg](https://yyz2.discourse-cdn.com/flex036/user_avatar/forum.serverless.com/mohitg/32/320_2.png) [@mohitg](https://forum.serverless.com/u/mohitg)\
**Post date:** [December 3, 2016, 11:22pm UTC](https://forum.serverless.com/t/requires-capabilities-error-serverless-deploy/871/3 "2016-12-03T23:22:09Z")

</div>

Hi,

The custom role is defined in resources section of serverless.xml. Here is the extract:

```
resources:
  Resources:
    StreamFunctionEventSourceMappingDynamodbMyTable1:
      Type: AWS::Lambda::EventSourceMapping
      DependsOn: IamPolicyLambdaExecution
      Properties:
        BatchSize: 100
        EventSourceArn: arn:aws:dynamodb:us-east-1:XX:table/tablename/stream/2016-11-07T17:00:04.145
        FunctionName: a
        StartingPosition: LATEST
        Enabled: True
    StreamFunctionEventSourceMappingDynamodbMyTable2:
      Type: AWS::Lambda::EventSourceMapping
      DependsOn: IamPolicyLambdaExecution
      Properties:
        BatchSize: 100
        EventSourceArn: arn:aws:dynamodb:us-east-1:XX:table/tablename/stream/2016-11-07T17:00:04.145
        FunctionName: c
        StartingPosition: LATEST
        Enabled: True
    myCustRole0:
      Type: AWS::IAM::Role
      Properties:
        Path: /
        RoleName: myRole
        AssumeRolePolicyDocument:
          Version: '2017'
          Statement:
            - Effect: Allow
              Principal:
                Service:
                  - lambda.amazonaws.com
              Action: sts:AssumeRole
        Policies:
          - PolicyName: myPolicy
            PolicyDocument:
              Version: '2017'
              Statement:
                - Effect: Allow
                  Action:
                    - logs:CreateLogGroup
                    - logs:CreateLogStream
                    - logs:PutLogEvents
                  Resource: 
                    - arn:aws:logs:us-east-1:XX:log-group:/aws/lambda/a:*:*
                    - arn:aws:logs:us-east-1:XX:log-group:/aws/lambda/b:*:*
                    - arn:aws:logs:us-east-1:XX:log-group:/aws/lambda/c:*:*
                - Effect: Allow
                  Action:
                    - dynamodb:DescribeStream
                    - dynamodb:GetRecords
                    - dynamodb:GetShardIterator
                    - dynamodb:ListStreams
                  Resource: arn:aws:dynamodb:us-east-1:XX:table/tablename/stream/2016-11-07T17:00:04.145
                - Effect: Allow
                  Action:
                    - dynamodb:*
                    - swf:*
                    - cloudwatch:DeleteAlarms
                    - cloudwatch:DescribeAlarmHistory
                    - cloudwatch:DescribeAlarms
                    - cloudwatch:DescribeAlarmsForMetric
                    - cloudwatch:GetMetricStatistics
                    - cloudwatch:ListMetrics
                    - cloudwatch:PutMetricAlarm
                  Resource: "*"
```

---

<div class="post-metadata">

**Author:** ![mohitg](https://yyz2.discourse-cdn.com/flex036/user_avatar/forum.serverless.com/mohitg/32/320_2.png) [@mohitg](https://forum.serverless.com/u/mohitg)\
**Post date:** [December 4, 2016, 12:49am UTC](https://forum.serverless.com/t/requires-capabilities-error-serverless-deploy/871/4 "2016-12-04T00:49:52Z")

</div>

I have updated the serverless version from 1.1.0 to 1.3.0 and no longer seeing the reported error. However, i do see a new error:

```
Serverless Error ---------------------------------------
 
     Template format error: Unresolved resource dependencies
     [IamPolicyLambdaExecution] in the Resources block of
     the template
```

---

<div class="post-metadata">

**Author:** ![mohitg](https://yyz2.discourse-cdn.com/flex036/user_avatar/forum.serverless.com/mohitg/32/320_2.png) [@mohitg](https://forum.serverless.com/u/mohitg)\
**Post date:** [December 13, 2016, 4:08pm UTC](https://forum.serverless.com/t/requires-capabilities-error-serverless-deploy/871/5 "2016-12-13T16:08:31Z")

</div>

Please help me on the issue reported

---

<div class="post-metadata">

**Author:** ![rowanu](https://yyz2.discourse-cdn.com/flex036/user_avatar/forum.serverless.com/rowanu/32/75_2.png) [@rowanu](https://forum.serverless.com/u/rowanu)\
**Post date:** [December 13, 2016, 9:13pm UTC](https://forum.serverless.com/t/requires-capabilities-error-serverless-deploy/871/6 "2016-12-13T21:13:40Z")

</div>

There’s something wrong with your template, have you checked it with `sls deploy --noDeploy` and looking at the `.serverless/cloudformation-template-update-stack.json` file?
