Status: Resolved
Root cause
An upstream failure on Meta's side stopped Threads from delivering comment notification events to Buffer. Meta later confirmed this directly, attributing it to an internal event on their end. Our own systems were healthy throughout, the same webhook service kept processing every other network normally, and we ruled out internal causes (no recent deploys or config changes, healthy infrastructure, no error spikes, valid credentials). The failure was isolated entirely to the Threads notification path.
Customer impact
Real-time comment notifications for Threads channels in Community stopped arriving. No comments were permanently lost, but customers experienced delayed visibility and had to rely on manual refresh in the meantime. The backup ingestion path had real limits: it could surface newer comments on a delay, but comments on older posts could be missed until Meta restored delivery.
Steps to resolution
Confirmed the drop was specific to the Threads path and ruled out internal causes, pointing to an upstream issue.
Escalated to Meta through direct engineering contacts and a formal support ticket, providing diagnostic details on request.
Enabled and scaled up our backfill workers as a stopgap so ingestion continued on a delay, and enabled a user-facing "Sync Now" force-refresh.
Kept customers informed via the status page with the available workarounds.
Confirmed webhook traffic returned to normal once Meta resolved the issue, then closed the incident.
Key learnings
Explore keeping the fallback always on. Our backfill safety net wasn't running when webhooks stopped, which made the impact immediately customer-facing. Given this is a recurring class of upstream Threads issue, we're treating continuous backfill as a standing safety net rather than an emergency-only measure.
Detection and escalation were too slow. There was a long gap between the traffic drop and a formal incident being declared. We're tightening alerting so a complete flatline on a webhook route escalates more urgently and can't be quietly silenced.
An observability gap hid failures. Because the webhook handler always returned a success response (to avoid triggering upstream retries), our monitoring wasn't flagging processing errors — for Threads or potentially other networks. We're fixing this so failures surface properly.
Backfill isn't a full substitute for real-time. It retrieves less than live delivery and can't reach the oldest posts, so some comments during an extended outage are genuinely missed. That trade-off should be communicated clearly to customers whenever the fallback is active.