Changes / Upstash / Performance degradation on QStash
Upstash: Major incident: Performance degradation on QStash
Summary
QStash had a major incident affecting EU-CENTRAL-1, with extremely high event-processing latency for all users and duplicate deliveries for some customers. It ran from 2024-11-13 14:14 UTC to 2024-11-13 17:27 UTC, lasting 3 h 12 min. Upstash attributed the degradation to sudden, extreme server load and reported implementing a fix before resolution.
Machine-written from the diff below (Sol; type: incident degradation). Check the diff before relying on it.
Major incidentLabel: degradation (model (Jev), 100%)Changed Detected Source: stspg.io (opens in new tab)
What changed
Before: not present
After: Performance degradation on QStash
Before: not present
After: major
Before: not present
After: postmortem
Before: not present
After: 2024-11-13 14:14 UTC
Before: not present
After: 2024-11-13 17:27 UTC
Before: not present
After: EU-CENTRAL-1, QStash
Before: not present
After: We are currently investigating this issue.
Before: not present
After: The issue has been identified and a fix is being implemented.
Before: not present
After: We will be sharing a postmortem about the incident soon.
Before: not present
After: **Product:** QStash
**Impact:** Degraded performance, delayed processing of events, and duplicate event deliveries for some customers
## Incident Summary
QStash experienced an incident marked by a sudden and extreme load on our servers. This caused a degradation in performance, with extremely high latency for event processing for all users. We also noticed some of the events being delivered multiple times to some of the users. To mitigate the high load, we have increased the capacity as our initial response while investigation proceeds. Eventually, fixes for the issues are confirmed with an issue reproducer and deployed to production.
## Root Cause Analysis
In a certain type of usage, failure handling of [failureFunction](https://upstash.com/docs/workflow/basics/serve#failurefunction) can cause recursive calls which causes a leak in the queue of the tasks, causing a severe load on the QStash servers. This also triggered an edge case which caused some of the events to be delivered multiple times.
## Resolution
Two hotfixes to the QStash processes are deployed
1. Prevent recursive calls within the failure function.
2. Eliminate duplicate deliveries while keeping "at least once delivery" guarantee.
These are verified to successfully resolve the root cause, normalizing server load and restoring standard event processing operations.
## Impact on Customers
High latency of event processing is observed for all users. Some users received duplicate event deliveries. No events were lost, and all were delivered as part of our "at least once delivery" guarantee. Customers do not need to take any corrective action, as workflows have returned to normal and preventive fixes are deployed.
First version of this incident archived by Rewindex. View the live incident (opens in new tab).
History of this incident
| When (UTC) | Change | Kind |
|---|---|---|
| Major incident: Performance degradation on QStash (this change) QStash had a major incident affecting EU-CENTRAL-1, with extremely high event-processing latency for all users and duplicate deliveries for some customers. It ran from 2024-11-13 14:14 UTC to 2024-11-13 17:27 UTC, lasting 3 h 12 min. Upstash attributed the degradation to sudden, extreme server load and reported implementing a fix before resolution. | Major incident |