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.
tmp_dir = '%s/zipfile.%s' % (config.TMP_FOLDER, short_uid())
    mkdir(tmp_dir)
    tmp_file = '%s/%s' % (tmp_dir, LAMBDA_ZIP_FILE_NAME)
    save_file(tmp_file, zip_file_content)
    TMP_FILES.append(tmp_dir)
    lambda_details.cwd = tmp_dir
    return tmp_dir
def set_function_code(code, lambda_name, lambda_cwd=None):
    def generic_handler(event, context):
        raise ClientError(('Unable to find executor for Lambda function "%s". Note that ' +
            'Node.js, Golang, and .Net Core Lambdas currently require LAMBDA_EXECUTOR=docker') % lambda_name)
    arn = func_arn(lambda_name)
    lambda_details = arn_to_lambda[arn]
    runtime = lambda_details.runtime
    lambda_environment = lambda_details.envvars
    handler_name = lambda_details.handler or LAMBDA_DEFAULT_HANDLER
    code_passed = code
    code = code or lambda_details.code
    is_local_mount = code.get('S3Bucket') == BUCKET_MARKER_LOCAL
    zip_file_content = None
    if code_passed:
        lambda_cwd = lambda_cwd or set_archive_code(code_passed, lambda_name)
        if not is_local_mount:
            
            zip_file_content = get_zip_bytes(code_passed)
    else:
        lambda_cwd = lambda_cwd or lambda_details.cwd
    
    tmp_file = '%s/%s' % (lambda_cwd, LAMBDA_ZIP_FILE_NAME)
    if not zip_file_content: