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/models/team/team.py
"posthog.Dashboard", on_delete=models.SET_NULL, null=True, related_name="primary_dashboard_teams"
    )  
    
    
    @property
    def aggregate_users_by_distinct_id(self) -> bool:
        return str(self.pk) in get_list(get_instance_setting("AGGREGATE_BY_DISTINCT_IDS_TEAMS"))
    
    
    
    
    
    correlation_config = models.JSONField(default=dict, null=True, blank=True)
    
    session_recording_retention_period_days: models.IntegerField = models.IntegerField(
        null=True, default=None, blank=True
    )
    
    plugins_opt_in: models.BooleanField = models.BooleanField(default=False)
    
    opt_out_capture: models.BooleanField = models.BooleanField(default=False)
    
    event_names: models.JSONField = models.JSONField(default=list)
    event_names_with_usage: models.JSONField = models.JSONField(default=list)
    
    event_properties: models.JSONField = models.JSONField(default=list)
    event_properties_with_usage: models.JSONField = models.JSONField(default=list)
    event_properties_numerical: models.JSONField = models.JSONField(default=list)
    objects: TeamManager = TeamManager()
    def get_effective_membership_level(self, user_id: int) -> Optional["OrganizationMembership.Level"]: