### Is there an existing issue for this?

- [X] I have searched the existing issues

### Current Behavior

Retrieving certain records from Kinesis through `GetRecord` like so:
```
#!/bin/bash

SHARD_ITERATOR=$(aws kinesis get-shard-iterator \
    --endpoint-url=http://localhost:4566 \
    --shard-id shardId-000000000000 \
    --shard-iterator-type TRIM_HORIZON \
    --stream-name dbsync.events \
    --query 'ShardIterator')

aws --endpoint-url=http://localhost:4566 kinesis get-records --shard-iterator $SHARD_ITERATOR 
```
seems to fail consistently with the following error message:
```
An error occurred (InternalError) when calling the GetRecords operation (reached max retries: 2): exception while calling kinesis.GetRecords: Traceback (most recent call last):
  File "/opt/code/localstack/localstack/aws/chain.py", line 57, in handle
    handler(self, self.context, response)
  File "/opt/code/localstack/localstack/aws/handlers/service.py", line 121, in __call__
    handler(chain, context, response)
  File "/opt/code/localstack/localstack/aws/handlers/legacy.py", line 69, in __call__
    result = self.forward_request(
  File "/opt/code/localstack/localstack/aws/handlers/legacy.py", line 129, in forward_request
    return do_forward_request(
  File "/opt/code/localstack/localstack/services/edge.py", line 225, in do_forward_request
    result = do_forward_request_inmem(api, method, path, data, headers, port=port)
  File "/opt/code/localstack/localstack/services/edge.py", line 249, in do_forward_request_inmem
    response = modify_and_forward(
  File "/opt/code/localstack/localstack/services/generic_proxy.py", line 604, in wrapper
    value = func(*args, **kwargs)
  File "/opt/code/localstack/localstack/services/generic_proxy.py", line 777, in modify_and_forward
    updated_response = listener.return_response(
  File "/opt/code/localstack/localstack/services/kinesis/kinesis_listener.py", line 187, in return_response
    results, encoding_type = self.decode_content(response.content, True)
  File "/opt/code/localstack/localstack/services/kinesis/kinesis_listener.py", line 264, in decode_content
    decoded = json.loads(to_str(data))
  File "/usr/local/lib/python3.10/json/__init__.py", line 346, in loads
    return _default_decoder.decode(s)
  File "/usr/local/lib/python3.10/json/decoder.py", line 337, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "/usr/local/lib/python3.10/json/decoder.py", line 355, in raw_decode
    raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
```

My compose file includes the following entry for LocalStack:
```
localstack:
    container_name: localstack # required to run correctly
    image: localstack/localstack
    ports:
      - "4566:4566"
      - "4510-4559:4510-4559"
    environment:
      DEBUG: 1
      DOCKER_HOST: unix:///var/run/docker.sock
      KINESIS_INITIALIZE_STREAMS: dbsync:1,dbsync.events:1
    volumes:
      - ./dbsync/localstack:/var/lib/localstack
      - /var/run/docker.sock:/var/run/docker.sock
```

### Expected Behavior

I would expect the call to `GetRecords` to succeed given this works with production Kinesis.

### How are you starting LocalStack?

With a docker-compose file

### Steps To Reproduce

See Current Behavior

### Environment

```markdown
- OS: MacOS Monterey (12.4)
- LocalStack: latest
```


### Anything else?

_No response_
user_agent = headers.get("User-Agent", "").split(" ")[0]
        if re.search(r"\/2.\d+.\d+", user_agent):
            return True
        return False
    def replace_in_encoded(self, data):
        if not data:
            return ""
        def _replace(_data):
            return re.sub(
                r"arn:aws:kinesis:[^:]+:",
                "arn:aws:kinesis:%s:" % aws_stack.get_region(),
                _data,
            )
        decoded, type_encoding = self.decode_content(data, True)
        if type_encoding == APPLICATION_JSON:
            return _replace(to_str(data))
        if type_encoding == APPLICATION_CBOR:
            replaced = _replace(json.dumps(decoded))
            return cbor2.dumps(json.loads(replaced))
    def decode_content(self, data, describe=False):
        try:
            decoded = json.loads(to_str(data))
            content_type = APPLICATION_JSON
        except UnicodeDecodeError:
            decoded = cbor2.loads(data)
            content_type = APPLICATION_CBOR
        if describe:
            return decoded, content_type
        return decoded
def encode_data(data, encoding_type):