May be a duplicate of https://github.com/localstack/localstack/issues/988 but due to the age I will re raise.

I'm having issues when I throw an exception in a lambda - it isn't appearing on my dead letter queue. Is there something I am missing, I would like an sqs event exception to appear on the poison queue when an exception happens.

Below is the basic config:
 ````
    sqsclient.create_queue(QueueName = 'test-queue')
    sqsclient.create_queue(QueueName = 'test-queue-poison')

    lambda_client.create_function(
            FunctionName='MyFunction',
            Runtime='dotnetcore2.1',
            Role='role',
            Handler='Handler',
            Code=code,
	    DeadLetterConfig={'TargetArn': 'test-queue-poison-arn'})

     lambda_client.create_event_source_mapping(
		EventSourceArn='test-queue-arn',
		FunctionName='MyFunction',
		Enabled=True,
		BatchSize=100,
		StartingPosition='LATEST')
````

So when I raise a new (.net)exception within the lambda function no message is going to the dead letter queue. I can confirm that all is attached together OK as all other scenarios work, and the above code is pseudo-ish.
Exception,
            apig.get_authorizer,
            self.TEST_API_GATEWAY_ID,
            authorizer_id)
    def _test_api_gateway_lambda_proxy_integration_any_method(self, fn_name, path):
        self.create_lambda_function(fn_name)
        
        lambda_uri = aws_stack.lambda_function_arn(fn_name)
        target_uri = aws_stack.apigateway_invocations_arn(lambda_uri)
        result = self.connect_api_gateway_to_http_with_lambda_proxy(
            'test_gateway3', target_uri, methods=['ANY'], path=path)
        
        path = path.replace('{test_param1}', 'foo1')
        url = self.gateway_request_url(
            api_id=result['id'], stage_name=self.TEST_STAGE_NAME, path=path)
        data = {}
        for method in ('GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'OPTIONS'):
            body = json.dumps(data) if method in ('POST', 'PUT', 'PATCH') else None
            result = getattr(requests, method.lower())(url, data=body)
            self.assertEqual(result.status_code, 200)
            parsed_body = json.loads(to_str(result.content))
            self.assertEqual(parsed_body.get('httpMethod'), method)
    # =====================================================================
    # Helper methods
    # =====================================================================
    def gateway_request_url(self, api_id, stage_name, path):
        """ Return URL for inbound API gateway for given API ID, stage name, and path """
        pattern = '%s/restapis/{api_id}/{stage_name}/%s{path}' % (config.TEST_APIGATEWAY_URL, PATH_USER_REQUEST)
        return pattern.format(api_id=api_id, stage_name=stage_name, path=path)
    def connect_api_gateway_to_kinesis(self, gateway_name, kinesis_stream):