## 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/api/test/test_capture.py
return json.dumps(data)
    def _dict_to_b64(self, data: dict) -> str:
        return base64.b64encode(json.dumps(data).encode("utf-8")).decode("utf-8")
    def _dict_from_b64(self, data: str) -> dict:
        return json.loads(base64.b64decode(data))
    @patch("posthog.models.team.TEAM_CACHE", {})
    @patch("posthog.tasks.process_event.process_event.delay")
    def test_capture_event(self, patch_process_event):
        data = {
            "event": "$autocapture",
            "properties": {
                "distinct_id": 2,
                "token": self.team.api_token,
                "$elements": [
                    {"tag_name": "a", "nth_child": 1, "nth_of_type": 2, "attr__class": "btn btn-sm",},
                    {"tag_name": "div", "nth_child": 1, "nth_of_type": 2, "$el_text": "💻",},
                ],
            },
        }
        now = timezone.now()
        with freeze_time(now):
            with self.assertNumQueries(1):
                response = self.client.get(
                    "/e/?data=%s" % quote(self._dict_to_json(data)),
                    content_type="application/json",
                    HTTP_ORIGIN="https://localhost",
                )
        self.assertEqual(response.get("access-control-allow-origin"), "https://localhost")
        arguments = patch_process_event.call_args[1]
        arguments.pop("now")  # c