anchor.diff:  
   nonexistent_bucket_listing_test_case(Bucket, Config) ->
       ?assertError({aws_error, {http_error, 404, _, _}}, erlcloud_s3_multipart:list_uploads(Bucket, [], Config)).
  +
  +invalid_part_number_test_case(Bucket, Key, Config) ->
  +    InitUploadRes = erlcloud_s3_multipart:initiate_upload(Bucket, Key, [], [], Config),
  +    UploadId = erlcloud_s3_multipart:upload_id(InitUploadRes),
  +    InvalidPartNumber = ?DEFAULT_MAX_PART_NUMBER + 1,
  +    {'EXIT', {{aws_error, {http_error, 400, _, Body}}, _Backtrace}} =
  +        (catch erlcloud_s3_multipart:upload_part(Bucket,
  +                                                 Key,
  +                                                 UploadId,
  +                                                 InvalidPartNumber,
  +                                                 generate_part_data(0, ?GOOD_PART_SIZE),
  +                                                 Config)),
  +    ?assertMatch({match, _},
  +                 re:run(Body, riak_cs_s3_response:error_message(invalid_part_number), [multiline])),
  +    abort_uploads(Bucket, Config).
  +
   
   basic_upload_test_case(Bucket, Key, Config) ->
       %% Initiate a multipart upload
  
positive.code:     ok = parts_too_small_test_case(?TEST_BUCKET, ?TEST_KEY1, UserConfig),
      aborted_upload_test_case(?TEST_BUCKET, ?TEST_KEY2, UserConfig),
      nonexistent_bucket_listing_test_case("fake-bucket", UserConfig),
  
      %% Start 10 uploads for 10 different keys
      Count1 = 10,
  
negative.code: 
  -export([confirm/0, upload_id_present/2]).
  -include_lib("eunit/include/eunit.hrl").
  -include("riak_cs.hrl").
  
  -define(TEST_BUCKET, "riak-test-bucket").
  -define(TEST_KEY1, "riak_test_key1").
  