title: Why does S3.deleteObject not fail when the specified key doesn't exist?
body: <p>Using the <a href="http://docs.aws.amazon.com/AWSJavaScriptSDK/latest/index.html" rel="noreferrer">AWS SDK for Node</a>, why do I not get an error when trying to delete an object that doesn't exist (i.e. the S3 key is wrong)?</p>
  
  <p>If I specify a non-existent bucket on the other hand, an error is produced.</p>
  
  <p>If you consider the following Node program, the <code>Key</code> parameter lists a key which doesn't exist in the bucket, yet the <code>error</code> argument to the callback is <code>null</code>:</p>
  
  <pre><code>var aws = require('aws-sdk')
  
  function getSetting(name) {
    var value = process.env[name]
    if (value == null) {
      throw new Error('You must set the environment variable ' + name)
    }
    return value
  }
  
  var s3Client = new aws.S3({
    accessKeyId: getSetting('AWSACCESSKEYID'),
    secretAccessKey: getSetting('AWSSECRETACCESSKEY'),
    region: getSetting('AWSREGION'),
    params: {
      Bucket: getSetting('S3BUCKET'),
    },
  })
  picturePath = 'nothing/here'
  s3Client.deleteObject({
    Key: picturePath,
  }, function (err, data) {
    console.log('Delete object callback:', err)
  })
  </code></pre>