title: ExpressionAttributeValues must not be empty in lambda function using node js
body: <p>I am trying to perform update operation using lambda function. But am getting Validation Exception stating  <strong>ExpressionAttributeValues must not be empty</strong></p>
  
  <p><strong>Iam just assigning the interface to vehicleInfo</strong>                                           </p>
  
  <pre><code> export interface VehicleFeatureUpdateRequest{
      year: number;
      model: string;
      controls:Controls;
  }
  
  
  
  private doUpdate = (vehicle: VehicleFeatureUpdateRequest) =&gt; {
          return new Promise((resolve, reject) =&gt; {
              const vehicleInfo = vehicle;
              const updates:Controls = vehicle.controls;
              console.log(vehicleInfo);               
              const ddbParams: DocumentClient.UpdateItemInput = {
                  TableName: this.ConfigParams['vehicletable'],
  
  
                  Key:{
                      model:vehicleInfo.model,
                      year:vehicleInfo.year
                  },
  
                  UpdateExpression: "set controls = :controls",
                  ExpressionAttributeValues: {
                     ":controls":updates 
                  },
  
                  ReturnValues: "UPDATED_NEW"
  
              };
  
  
              this.DDB.update(ddbParams, (err: AWSError, data: DocumentClient.UpdateItemOutput) =&gt; {
                  if (err) {
                      console.log('Error updating an item in vehicle table: ' + err, err.stack);
                      return reject(err);
                  }
                  data['status'] = `Vehicle [${vehicleInfo.model}] was updated successfully.`;
                  return resolve(data);
              });
          });
      }
  </code></pre>
  
  <blockquote>
    <p>Response:
        {
          "errorType": "ValidationException",
          "errorMessage": "ExpressionAttributeValues must not be empty",
          "trace": [
            "ValidationException: ExpressionAttributeValues must not be empty",
            "    at Request.extractError (/var/runtime/node_modules/aws-sdk/lib/protocol/json.js:51:27)",
            "    at Request.callListeners (/var/runtime/node_modules/aws-sdk/lib/sequential_executor.js:106:20)",
            "    at Request.emit (/var/runtime/node_modules/aws-sdk/lib/sequential_executor.js:78:10)",
            "    at Request.emit (/var/runtime/node_modules/aws-sdk/lib/request.js:683:14)",
            "    at Request.transition (/var/runtime/node_modules/aws-sdk/lib/request.js:22:10)",
            "    at AcceptorStateMachine.runTo (/var/runtime/node_modules/aws-sdk/lib/state_machine.js:14:12)",
            "    at /var/runtime/node_modules/aws-sdk/lib/state_machine.js:26:10",
            "    at Request. (/var/runtime/node_modules/aws-sdk/lib/request.js:38:9)",
            "    at Request. (/var/runtime/node_modules/aws-sdk/lib/request.js:685:12)",
            "    at Request.callListeners (/var/runtime/node_modules/aws-sdk/lib/sequential_executor.js:116:18)"
          ]
        }</p>
  </blockquote>