{
  "id": 19736016,
  "title": "My Digest Job Ran as Root for 41 Days. My App Couldn't Read a Single File It Wrote.",
  "url": "https://urgent.news/2026/11/13/my-digest-job-ran-as-root-for-41-days-my-app-couldnt-read-a-single",
  "topic": "tech",
  "section": "Tech",
  "published": "2026-11-13T01:02:03.000Z",
  "source": {
    "name": "Dev.to",
    "slug": "dev-to",
    "url": "https://dev.to/ulnit/my-digest-job-ran-as-root-for-41-days-my-app-couldnt-read-a-single-file-it-wrote-1p71"
  },
  "original_language": "en",
  "account": "The digest job ran for 41 days as root, and the app could not read any file it wrote. The problem was not in the reader, but in the system's response to the operating system indicating \"no\" files. The app's exception handling was inadequate, silently ignoring the exception and reporting success. The author found the issue after receiving a customer email and discovered that 41 files, owned by root, were unreadable by the app which ran as a different user. Two decisions contributed to the issue: the job was run as root and the umask was set to 0o077. The fix involved running the job as the correct user, adjusting permissions on the output directory, adding a health check that runs as the app user, and logging exceptions.",
  "summary": "The email that ended it was four words long: \"is the digest dead?\" Fair question. The page had been loading fine every single morning. Header, date, footer, all rendered. Between the header and the footer: \"No new items today.\" Forty-one days in a row, on a page that had been averaging 31 items a day since March. Nothing had crashed. No 500s, no restarts, no alerts. My uptime monitor was green…",
  "key_points": [],
  "editors_take": null,
  "illustration": null,
  "coverage": {
    "outlets": 1,
    "also_reported_by": []
  },
  "ai_generated": true,
  "disclaimer": "Summaries, key points and the editor’s take are written by software from other outlets’ reporting and may contain errors — always check the linked original."
}