I am using localstack for running integration tests for Kinesis data stream KCL 2.0x consumer. I have used latest docker image for this.
I am able to publish data to localstack kinesis using the aws-java-sdk. My consumer should work fine and consume the data but instead throws this error:

```
2021-01-18 19:13:56.329  INFO 112252 --- [  restartedMain] s.amazon.kinesis.coordinator.Scheduler   : Initialization complete. Starting worker loop.
2021-01-18 19:14:16.497  INFO 112252 --- [oordinator-0001] s.a.k.l.dynamodb.DynamoDBLeaseTaker      : Worker d670dc71-4c81-4c8c-898d-f48de247136f saw 1 total leases, 1 available leases, 1 workers. Target is 1 leases, I have 0 leases, I will take 1 leases
2021-01-18 19:14:16.550  INFO 112252 --- [oordinator-0001] s.a.k.l.dynamodb.DynamoDBLeaseTaker      : Worker d670dc71-4c81-4c8c-898d-f48de247136f successfully took 1 leases: shardId-000000000000
2021-01-18 19:14:17.463  INFO 112252 --- [  restartedMain] s.a.k.r.f.FanOutConsumerRegistration     : Waiting for StreamConsumer test to have ACTIVE status...
2021-01-18 19:14:18.496  INFO 112252 --- [  restartedMain] s.amazon.kinesis.coordinator.Scheduler   : Created new shardConsumer for : ShardInfo(shardId=shardId-000000000000, concurrencyToken=b738bc15-f561-4530-813b-bfc3a10bae1c, parentShardIds=[], checkpoint={SequenceNumber: LATEST,SubsequenceNumber: 0})
2021-01-18 19:14:18.498  INFO 112252 --- [dProcessor-0000] s.a.k.lifecycle.BlockOnParentShardTask   : No need to block on parents [] of shard shardId-000000000000
2021-01-18 19:14:19.525  INFO 112252 --- [dProcessor-0000] c.k.p.consumer.DeliveryStatusProcessor   : Initializing @ Sequence: {SequenceNumber: LATEST,SubsequenceNumber: 0}
2021-01-18 19:14:21.568  WARN 112252 --- [nc-response-0-4] s.a.k.r.fanout.FanOutRecordsPublisher    : shardId-000000000000: [SubscriptionLifetime] - (FanOutRecordsPublisher#errorOccurred) @ 2021-01-18T13:44:21.523Z id: shardId-000000000000-1 -- CompletionException/software.amazon.awssdk.services.kinesis.model.KinesisException: null (Service: Kinesis, Status Code: 400, Request ID: 44dfbbf0-5993-11eb-afc4-a991dcff0b58). Last successful request details -- request id - NONE, timestamp - NONE

java.util.concurrent.CompletionException: software.amazon.awssdk.services.kinesis.model.KinesisException: null (Service: Kinesis, Status Code: 400, Request ID: 44dfbbf0-5993-11eb-afc4-a991dcff0b58)
	at software.amazon.awssdk.utils.CompletableFutureUtils.errorAsCompletionException(CompletableFutureUtils.java:61) ~[utils-2.10.66.jar:na]
	at software.amazon.awssdk.core.internal.http.pipeline.stages.AsyncExecutionFailureExceptionReportingStage.lambda$execute$0(AsyncExecutionFailureExceptionReportingStage.java:51) ~[sdk-core-2.10.66.jar:na]
	at java.util.concurrent.CompletableFuture.uniHandle(CompletableFuture.java:836) ~[na:1.8.0_275]
	at java.util.concurrent.CompletableFuture$UniHandle.tryFire(CompletableFuture.java:811) ~[na:1.8.0_275]
	at java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:488) ~[na:1.8.0_275]
	at java.util.concurrent.CompletableFuture.completeExceptionally(CompletableFuture.java:1990) ~[na:1.8.0_275]
	at software.amazon.awssdk.utils.CompletableFutureUtils.lambda$forwardExceptionTo$0(CompletableFutureUtils.java:75) ~[utils-2.10.66.jar:na]
	at java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:774) ~[na:1.8.0_275]
	at java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:750) ~[na:1.8.0_275]
	at java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:488) ~[na:1.8.0_275]
	at java.util.concurrent.CompletableFuture.completeExceptionally(CompletableFuture.java:1990) ~[na:1.8.0_275]
	at software.amazon.awssdk.core.internal.http.pipeline.stages.AsyncRetryableStage$RetryExecutor.retryResponseIfNeeded(AsyncRetryableStage.java:157) ~[sdk-core-2.10.66.jar:na]
	at software.amazon.awssdk.core.internal.http.pipeline.stages.AsyncRetryableStage$RetryExecutor.retryIfNeeded(AsyncRetryableStage.java:121) ~[sdk-core-2.10.66.jar:na]
	at software.amazon.awssdk.core.internal.http.pipeline.stages.AsyncRetryableStage$RetryExecutor.lambda$execute$0(AsyncRetryableStage.java:108) ~[sdk-core-2.10.66.jar:na]
	at java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:774) ~[na:1.8.0_275]
	at java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:750) ~[na:1.8.0_275]
	at java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:488) ~[na:1.8.0_275]
	at java.util.concurrent.CompletableFuture.complete(CompletableFuture.java:1975) ~[na:1.8.0_275]
	at software.amazon.awssdk.core.internal.http.pipeline.stages.MakeAsyncHttpRequestStage.lambda$executeHttpRequest$1(MakeAsyncHttpRequestStage.java:169) ~[sdk-core-2.10.66.jar:na]
	at java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:774) ~[na:1.8.0_275]
	at java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:750) ~[na:1.8.0_275]
	at java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:456) ~[na:1.8.0_275]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) ~[na:1.8.0_275]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) ~[na:1.8.0_275]
	at java.lang.Thread.run(Thread.java:748) ~[na:1.8.0_275]
Caused by: software.amazon.awssdk.services.kinesis.model.KinesisException: null (Service: Kinesis, Status Code: 400, Request ID: 44dfbbf0-5993-11eb-afc4-a991dcff0b58)
	at software.amazon.awssdk.services.kinesis.model.KinesisException$BuilderImpl.build(KinesisException.java:95) ~[kinesis-2.10.66.jar:na]
	at software.amazon.awssdk.services.kinesis.model.KinesisException$BuilderImpl.build(KinesisException.java:55) ~[kinesis-2.10.66.jar:na]
	at software.amazon.awssdk.protocols.json.internal.unmarshall.AwsJsonProtocolErrorUnmarshaller.unmarshall(AwsJsonProtocolErrorUnmarshaller.java:88) ~[aws-json-protocol-2.10.66.jar:na]
	at software.amazon.awssdk.protocols.json.internal.unmarshall.AwsJsonProtocolErrorUnmarshaller.handle(AwsJsonProtocolErrorUnmarshaller.java:63) ~[aws-json-protocol-2.10.66.jar:na]
	at software.amazon.awssdk.protocols.json.internal.unmarshall.AwsJsonProtocolErrorUnmarshaller.handle(AwsJsonProtocolErrorUnmarshaller.java:42) ~[aws-json-protocol-2.10.66.jar:na]
	at software.amazon.awssdk.core.internal.http.async.AsyncResponseHandler.lambda$prepare$0(AsyncResponseHandler.java:88) ~[sdk-core-2.10.66.jar:na]
	at java.util.concurrent.CompletableFuture.uniCompose(CompletableFuture.java:966) ~[na:1.8.0_275]
	at java.util.concurrent.CompletableFuture$UniCompose.tryFire(CompletableFuture.java:940) ~[na:1.8.0_275]
	at java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:488) ~[na:1.8.0_275]
	at java.util.concurrent.CompletableFuture.complete(CompletableFuture.java:1975) ~[na:1.8.0_275]
	at software.amazon.awssdk.core.internal.http.async.AsyncResponseHandler$BaosSubscriber.onComplete(AsyncResponseHandler.java:129) ~[sdk-core-2.10.66.jar:na]
```

further logs:
```
2021-01-18 19:14:21.571  WARN 112252 --- [dProcessor-0001] s.a.k.lifecycle.ShardConsumerSubscriber  : shardId-000000000000: onError().  Cancelling subscription, and marking self as failed. KCL will recreate the subscription as neccessary to continue processing.

java.util.concurrent.CompletionException: software.amazon.awssdk.services.kinesis.model.KinesisException: null (Service: Kinesis, Status Code: 400, Request ID: 44dfbbf0-5993-11eb-afc4-a991dcff0b58)
	at software.amazon.awssdk.utils.CompletableFutureUtils.errorAsCompletionException(CompletableFutureUtils.java:61) ~[utils-2.10.66.jar:na]
```
How do I resolve this?
Does localstack not support working for KCL2.0x? Is there any workaround or example for this? 
'ConsumerName': consumer_name,
                    'ConsumerStatus': 'ACTIVE',
                    'StreamARN': data.get('StreamARN')
                }
            }
            return result
        elif action == 'SubscribeToShard':
            result = subscribe_to_shard(data)
            return result
        if random.random() < config.KINESIS_ERROR_PROBABILITY:
            if action in ['PutRecord', 'PutRecords']:
                return kinesis_error_response(data, action)
        return True
    def return_response(self, method, path, data, headers, response):
        action = headers.get('X-Amz-Target', '').split('.')[-1]
        data = self.decode_content(data or '{}')
        response._content = self.replace_in_encoded(response.content or '')
        records = []
        if action in ('CreateStream', 'DeleteStream'):
            event_type = (event_publisher.EVENT_KINESIS_CREATE_STREAM if action == 'CreateStream'
                          else event_publisher.EVENT_KINESIS_DELETE_STREAM)
            payload = {'n': event_publisher.get_hash(data.get('StreamName'))}
            if action == 'CreateStream':
                payload['s'] = data.get('ShardCount')
            event_publisher.fire_event(event_type, payload=payload)
        elif action == 'PutRecord':
            response_body = self.decode_content(response.content)
            
            event_record = {
                'approximateArrivalTimestamp': epoch_timestamp(),