## Bug description

While exploring the onboarding/setup funnel, I found what seems to be a bug capturing events (perhaps it's an API request issue). When I send this request, the events don't get saved (checked directly on the database).

```
POST <host>/capture
```

```json
{
    "api_key": "API_KEY_HERE",
    "event": "Purchase item",
    "properties": {
        "distinct_id": "845555992929291"
    }
}
```


## Expected behavior
- Events should be correctly saved to the database. If on the onboarding flow, continue the user and complete the onboarding.
- If the request is malformed or an invalid API key is sent, I should not receive a 200 status code. _There seems to be an issue with the request and therefore the event is not saved_, however **if I add a random non-existent key as the API key (e.g. `invalid`), I still get a 200 and a 1 in the response.**  


## Reproduction environment
- Tested using the one-line Docker deploy.
```bash
doker run -t -i --rm --publish 8000:8000 -v postgres:/var/lib/postgresql posthog/posthog:preview
```
- Tested on the cloud version with the same result (please reach out privately if you want to know the account's email address).

posthog/middleware.py
def __init__(self, get_response):
        if not settings.ALLOWED_IP_BLOCKS:
            
            raise MiddlewareNotUsed()
        self.ip_blocks = settings.ALLOWED_IP_BLOCKS
        if getattr(settings, "TRUSTED_PROXIES", False):
            self.trusted_proxies = [item.strip() for item in getattr(settings, "TRUSTED_PROXIES").split(",")]
        self.get_response = get_response
    def get_forwarded_for(self, request: HttpRequest):
        forwarded_for = request.META.get("HTTP_X_FORWARDED_FOR")
        if forwarded_for is not None:
            return [ip.strip() for ip in forwarded_for.split(",")]
        else:
            return []
    def extract_client_ip(self, request: HttpRequest):
        client_ip = request.META["REMOTE_ADDR"]
        if getattr(settings, "USE_X_FORWARDED_HOST", False):
            forwarded_for = self.get_forwarded_for(request)
            if forwarded_for:
                closest_proxy = client_ip
                client_ip = forwarded_for.pop(0)
                if getattr(settings, "TRUST_ALL_PROXIES", False):
                    return client_ip
                proxies = [closest_proxy] + forwarded_for
                for proxy in proxies:
                    if proxy not in self.trusted_proxies:
                        return None
        return client_ip
    def __call__(self, request: HttpRequest):