Today we have had a lot of errors related to connections to upstash Redis. I have tried creating a new Redis database and have had the same errors (logs below).
As we rely on Redis for our BullMQ queue (plus other caching), it is critical to the operation of our app. I have had to resort to moving to Redis Cloud, and all issues have disappeared.
On https://status.upstash.com/ it does show a related issue, apparently affecting DFW region, but we are in the SYD region:
Past Incidents
Jul 22, 2026
Fly.io infrastructure disruption affecting some Upstash Redis databases on Fly.io DFW Region
Resolved - This incident has been resolved.
Jul 22, 10:05 UTC
Monitoring - The affected Fly.io-hosted machines recovered at 08:48 UTC, and service availability has been restored. We are monitoring the systems to confirm continued stability.
Jul 22, 09:01 UTC
Identified - We are investigating connectivity issues affecting a subset of Redis databases hosted on Fly.io. The issue is related to an ongoing Fly.io infrastructure disruption in the DFW region ( Fly.io Status - Emergency network maintenance in DFW ). We are working to restore availability and will provide updates soon.
Example logs from our worker:
2026-07-23 11:19:30.425 |
Redis sub client connected | |||
|---|---|---|---|---|
| 2026-07-23 11:19:29.865 | Redis sub client connection closed | |||
| 2026-07-23 11:19:29.626 | } | |||
| 2026-07-23 11:19:29.626 | syscall: ‘read’ | |||
| 2026-07-23 11:19:29.626 | code: ‘ECONNRESET’, | |||
| 2026-07-23 11:19:29.626 | errno: -104, | |||
| 2026-07-23 11:19:29.626 | at TCP.onStreamRead (node:internal/stream_base_commons:216:20) { | |||
| 2026-07-23 11:19:29.626 | Redis sub client error: Error: read ECONNRESET | |||
| 2026-07-23 11:19:27.488 | at async Timeout._onTimeout (/app/node_modules/bullmq/dist/cjs/classes/lock-manager.js:79:21) | |||
| 2026-07-23 11:19:27.488 | at async LockManager.extendLocks (/app/node_modules/bullmq/dist/cjs/classes/lock-manager.js:31:9) | |||
| 2026-07-23 11:19:27.488 | at process.processTicksAndRejections (node:internal/process/task_queues:105:5) | |||
| 2026-07-23 11:19:27.488 | at /app/node_modules/bullmq/dist/cjs/classes/lock-manager.js:44:51 | |||
| 2026-07-23 11:19:27.488 | Worker error: Error: could not renew lock for job 5 | |||
| 2026-07-23 11:19:27.468 | at async Timeout._onTimeout (/app/node_modules/bullmq/dist/cjs/classes/lock-manager.js:79:21) | |||
| 2026-07-23 11:19:27.468 | at async LockManager.extendLocks (/app/node_modules/bullmq/dist/cjs/classes/lock-manager.js:31:9) | |||
| 2026-07-23 11:19:27.468 | at process.processTicksAndRejections (node:internal/process/task_queues:105:5) | |||
| 2026-07-23 11:19:27.468 | at /app/node_modules/bullmq/dist/cjs/classes/lock-manager.js:44:51 | |||
| 2026-07-23 11:19:27.468 | Worker error: Error: could not renew lock for job 4 |