### Is there an existing issue for this?

- [X] I have searched the existing issues

### Current Behavior

The Complete Multipart Upload operation generates the **InternalError** error for non-existing uploads.

### Expected Behavior

The Complete Multipart Upload operation generates the **NoSuchUpload** error for non-existing uploads.

### How are you starting LocalStack?

With a `docker run` command

### Steps To Reproduce

    docker run -it --rm -p 4566:4566 localstack/localstack

    aws s3api create-bucket --bucket test --endpoint-url http://localhost:4566 --create-bucket-configuration LocationConstraint=us-west-2

    aws s3api complete-multipart-upload --bucket test --endpoint-url http://localhost:4566 --key test --upload-id test

### Environment

```markdown
- OS: Windows 11
- LocalStack: latest
```


### Anything else?

The Abort Multipart Upload operation works correctly in LocalStack.

The official documentation: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html
Amazon S3 throws the correct **NoSuchUpload** error for both Abort and Complete operations.
aws_client.s3.put_(Bucket=s3_bucket, Key=key_name, Tagging="tag1=tag1")
        # GetO
        get__tagging_url = f"{bucket_url}/{key_name}?tagging"
        resp = s3_http_client.get(get__tagging_url, headers=headers)
        resp_dict = xmltodict.parse(resp.content)
        assert resp_dict["Tagging"]["TagSet"] == {"Tag": {"Key": "tag1", "Value": "tag1"}}
    @pytest.mark.aws_validated
    def test_s3_delete_s_trailing_slash(self, aws_http_client_factory, s3_bucket, aws_client):
        _key = "key-to-delete-trailing-slash"
        # crea
        aws_client.s3.put_(Bucket=s3_bucket, Key=_key, Body=b"123")
        headers = {"x-amz-content-sha256": "UNSIGNED-PAYLOAD"}
        s3_http_client = aws_http_client_factory("s3", signer_factory=SigV4Auth)
        # Endp
        bucket_url = f"{_bucket_url(s3_bucket)}/?delete&x-id=DeleteObjects"
        delete_body = f"""<Delete>
            <Object>
                <Key>{_key}</Key>
             </Object>
        </Delete>
        """
        # Post 
        resp = s3_http_client.post(bucket_url, headers=headers, data=delete_body)
        assert resp.status_code == 200
        resp_dict = xmltodict.parse(resp.content)
        assert "DeleteResult" in resp_dict
        assert resp_dict["DeleteResult"]["Deleted"]["Key"] == _key
    @pytest.mark.aws_validated
    @pytest.mark.xfail(reason="Behaviour not implemented yet")
    def test_complete_multipart_parts_checksum(self, s3_bucket, snapshot, aws_client):