Currently when a plugin errors, it gets autodisabled. This is however completely silent and easy to miss. The result can be degraded data quality or a hole in data in case of export plugins – something to be fixed ASAP.

A PagerDuty integration could come in useful here, allowing an alert to be sent in case of a plugin getting disabled. PagerDuty is tailored for this kind of thing, so this would potentially be better than e.g. an email – that could be easily missed in a sea of emails.

This problem was brought up by a current user of our Snowflake Export Plugin.
posthog/tasks/email.py
if is_email_available():
        one_day_ago = timezone.now() - timezone.timedelta(days=1)
        two_days_ago = timezone.now() - timezone.timedelta(days=2)
        users_to_email = get_users_for_orgs_with_no_ingested_events(
            org_created_from=two_days_ago, org_created_to=one_day_ago
        )
        campaign_key = "first_ingestion_reminder"
        for user in users_to_email:
            if posthoganalytics.feature_enabled("re-engagement-emails", user.distinct_id):
                message = EmailMessage(
                    campaign_key=campaign_key,
                    subject="Get started: How to send events to PostHog",
                    reply_to="hey@posthog.com",
                    template_name="first_ingestion_reminder",
                    template_context={
                        "first_name": user.first_name,
                        "invite_users_url": absolute_uri(
                            "/organization/settings?utm_source=posthog&utm_medium=email&utm_campaign=first_ingestion_reminder"
                        ),
                        "ingest_events_url": absolute_uri(
                            "ingestion/?utm_source=posthog&utm_medium=email&utm_campaign=first_ingestion_reminder"
                        ),
                    },
                )
                message.add_recipient(user.email)
                message.send()
                report_first_ingestion_reminder_email_sent(user)
@app.task(max_retries=1)
def send_second_ingestion_reminder_emails() -> None: