title: DynamoDB: ConditionalCheckFailedException
body: <p>I am dealing with a ConditionalCheckFailedException and I am not exactly sure which condition is failing the check. When I open up debugger and examine the exception variable, I can't find any useful info.</p>
  
  <p>Below is my Java Dynamo Client code. I am trying to make a conditional write to DynamoDB using DynamoDBSaveExpression when:</p>
  
  <p>The client date in the table comes before the current client date that I am trying to write (stored as EPOCH time)
  An entry does not exist in the table (I check for the FEEDBACK_KEY as it is the primary key in my table)
  When I write the first entry into the table, it works, but on updates when an entry exists, I get the ConditionalCheckFailedException exception. Any ideas?</p>
  
  <pre><code>final DynamoDBSaveExpression expression = new DynamoDBSaveExpression();
  
  final Map&lt;String, ExpectedAttributeValue&gt; expectedAttributes =
          ImmutableMap.&lt;String, ExpectedAttributeValue&gt;builder()
              .put(ThemesMessageEligibility.TableKeys.CLIENT_DATE,
                      new ExpectedAttributeValue()
                          .withComparisonOperator(ComparisonOperator.LT)
                          .withValue(new AttributeValue().withN(clientDate)))
              .put(ThemesMessageEligibility.TableKeys.FEEDBACK_KEY,
                      new ExpectedAttributeValue(false))
              .build();
  
  expression.setExpected(expectedAttributes);
  expression.setConditionalOperator(ConditionalOperator.OR);
  
  // Conditional write if the clientDate is after the dynamo's client Date
  try {
      dynamoMapper.save(themesFeedbackComponentContainer, expression);
  } catch (ConditionalCheckFailedException ex) {
     ...
  }
  </code></pre>