<!-- Love localstack? Please consider supporting our collective:
👉  https://opencollective.com/localstack/donate -->

# Type of request: This is a ...

[ X ] bug report
[ ] feature request

# Detailed description
Issue originally described and fixed here https://github.com/localstack/localstack/issues/2055 has been reverted by a subsequent change. This PR reverted the fix: https://github.com/localstack/localstack/pull/2202 on file apigateway_listener.py

See original issue for full details.

## Actual behaviour

Serverless Lambda gives a 502 bad gateway response.

`localstack_1  | 2020-04-06T16:03:43:ERROR:localstack.services.generic_proxy: Error forwarding request: 'NoneType' object is not iterable Traceback (most recent call last):
localstack_1  |   File "/opt/code/localstack/localstack/services/generic_proxy.py", line 247, in forward
localstack_1  |     listener_result = listener.forward_request(method=method,
localstack_1  |   File "/opt/code/localstack/localstack/services/apigateway/apigateway_listener.py", line 47, in forward_request
localstack_1  |     return invoke_rest_api(api_id, stage, method, relative_path_w_query_params, data, headers, path=path)
localstack_1  |   File "/opt/code/localstack/localstack/services/apigateway/apigateway_listener.py", line 254, in invoke_rest_api
localstack_1  |     response.headers.update((parsed_result or {}).get('headers', {}))
localstack_1  |   File "/usr/lib/python3.8/_collections_abc.py", line 837, in update
localstack_1  |     for key, value in other:
localstack_1  | TypeError: 'NoneType' object is not iterable
`
pass
def authorize_invocation(api_id, headers):
    client = aws_stack.connect_to_service('apigateway')
    authorizers = client.get_authorizers(restApiId=api_id, limit=100).get('items', [])
    for authorizer in authorizers:
        run_authorizer(api_id, headers, authorizer)
def invoke_rest_api(api_id, stage, method, invocation_path, data, headers, path=None):
    path = path or invocation_path
    relative_path, query_string_params = extract_query_string_params(path=invocation_path)
    
    authorize_invocation(api_id, headers)
    path_map = helpers.get_rest_api_paths(rest_api_id=api_id)
    try:
        extracted_path, resource = get_resource_for_path(path=relative_path, path_map=path_map)
    except Exception:
        return make_error_response('Unable to find path %s' % path, 404)
    integrations = resource.get('resourceMethods', {})
    integration = integrations.get(method, {})
    if not integration:
        integration = integrations.get('ANY', {})
    integration = integration.get('methodIntegration')
    if not integration:
        if method == 'OPTIONS' and 'Origin' in headers:
            
            return get_cors_response(headers)
        return make_error_response('Unable to find integration for path %s' % path, 404)