TRMNL incident

Failed database migration

Resolved on October 23, 2025.

resolved Oct 23, 2025, 09:22 PM UTC

During non-peak hours we deployed a migration that drops a legacy table, "Playlist Groups." This was responsible for scheduling different plugins through the day, but has since been replaced by the Scheduler, which was deployed to all accounts on September 8, 2025. Database CPU quickly climbed to 100%, preventing us from connecting + debugging. Engineers upsized the database, connected, and discovered the table being dropped (+ foreign key being migrated) had legacy records with a composite index. This composite index was used in the service invoked by GET requests to /api/display, which caused some devices to render a "Technical Difficulties" image. After fixing + adding back the composite index, and modifying the Playlist query that is triggered by GET requests to /api/display, service returned to normal.

Started
Oct 23, 2025, 05:30 AM UTC
Resolved
Oct 23, 2025, 05:30 AM UTC
Duration
–
Detected by Pingoru
Oct 23, 2025, 05:30 AM UTC

Update timeline

  1. resolved Oct 23, 2025, 09:22 PM UTC

    During non-peak hours we deployed a migration that drops a legacy table, "Playlist Groups." This was responsible for scheduling different plugins through the day, but has since been replaced by the Scheduler, which was deployed to all accounts on September 8, 2025. Database CPU quickly climbed to 100%, preventing us from connecting + debugging. Engineers upsized the database, connected, and discovered the table being dropped (+ foreign key being migrated) had legacy records with a composite index. This composite index was used in the service invoked by GET requests to /api/display, which caused some devices to render a "Technical Difficulties" image. After fixing + adding back the composite index, and modifying the Playlist query that is triggered by GET requests to /api/display, service returned to normal.

Your product runs on more than TRMNL

Add the vendors you depend on and get one message when any of them reports trouble. Free for 3 vendors, no card.

Add your stack →