### Is there an existing issue for this?

- [X] I have searched the existing issues

### Current Behavior

I got the following unexpected error when trying to delete a policy that does not exist.

```log
self = <botocore.parsers.QueryParser object at 0x7fa3d2cd2820>
xml_string = b'<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">\n<title>500 Internal Server Error</title>\n<h1>Internal Serv...nd was unable to complete your request. Either the server is overloaded or there is an error in the application.</p>\n'

    def _parse_xml_string_to_dom(self, xml_string):
        try:
            parser = ETree.XMLParser(
                target=ETree.TreeBuilder(),
                encoding=self.DEFAULT_ENCODING)
            parser.feed(xml_string)
            root = parser.close()
        except XMLParseError as e:
>           raise ResponseParserError(
                "Unable to parse response (%s), "
                "invalid XML received. Further retries may succeed:\n%s" %
                (e, xml_string))
E           botocore.parsers.ResponseParserError: Unable to parse response (syntax error: line 1, column 54), invalid XML received. Further retries may succeed:
E           b'<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">\n<title>500 Internal Server Error</title>\n<h1>Internal Server Error</h1>\n<p>The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there is an error in the application.</p>\n'
```

### Expected Behavior

I expect a `ClientError` with the message code as `NoSuchEntity`

### How are you starting LocalStack?

With a `docker run` command

### Steps To Reproduce

#### How are you starting localstack (e.g., `bin/localstack` command, arguments, or `docker-compose.yml`)

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

#### Client commands (e.g., AWS SDK code snippet, or sequence of "awslocal" commands)

Im using boto3 with the following init:

```python
client = boto3.client(
            'iam',
            region_name="us-east-1",
            endpoint_url="http://localstack:4566",
            aws_access_key_id="dummy_id",
            aws_secret_access_key="dummy_key")
```

To reproduce the error try to delete a non existent IAM policy:

```python
import boto3
from botocore.exceptions import ClientError

client = boto3.client(
            'iam',
            region_name="us-east-1",
            endpoint_url="http://localstack:4566",
            aws_access_key_id="dummy_id",
            aws_secret_access_key="dummy_key")

try:
    client.delete_policy(PolicyArn="arn:aws:iam::000000000000:policy/non-existent-policy")
except Exception as ex:
    if isinstance(ex, ClientError):
        print("expected")
    else:
        print("not expected")
```

*Output*

```log
not expected
```

*Error*

```log
Unable to parse response (syntax error: line 1, column 54), invalid XML received. Further retries may succeed:
b'<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">\n<title>500 Internal Server Error</title>\n<h1>Internal Server Error</h1>\n<p>The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there is an error in the application.</p>\n'
```

### Environment

```markdown
- OS: MacOS BigSur 11.4
- LocalStack: latest
- Docker: v20.10.7
```


### Anything else?

_No response_
test_policy_document = {
            "Version": "2012-10-17",
            "Statement": {
                "Effect": "Allow",
                "Action": "s3:ListBucket",
                "Resource": "arn:aws:s3:::example_bucket",
            },
        }
        test_user_name = "test-user"
        self.iam_client.create_user(UserName=test_user_name)
        response = self.iam_client.create_policy(
            PolicyName="test-policy", PolicyDocument=json.dumps(test_policy_document)
        )
        test_policy_arn = response["Policy"]["Arn"]
        self.assertIn(TEST_AWS_ACCOUNT_ID, test_policy_arn)
        self.iam_client.attach_user_policy(UserName=test_user_name, PolicyArn=test_policy_arn)
        attached_user_policies = self.iam_client.list_attached_user_policies(
            UserName=test_user_name
        )
        self.assertEqual(1, len(attached_user_policies["AttachedPolicies"]))
        self.assertEqual(
            test_policy_arn, attached_user_policies["AttachedPolicies"][0]["PolicyArn"]
        )
        
        self.iam_client.detach_user_policy(UserName=test_user_name, PolicyArn=test_policy_arn)