ex_aws and ex_aws_s3.x-amz-copy-source. All the SDKs except for ExAws set the header value in the bucket-name/object-key format, which is how we were expecting it to be set. However, ExAws sets the value in the format /bucket-name/object-key. Notice the leading /. This was causing the copy object requests from ExAws to fail.