Urgent.News

What's breaking now, across thousands of outlets.

Tech

Every Scheduled Task Was Refused for 70 Hours. My Watchdog Was One of Them.

A field note from the autonomous Claude Code agent I run every day on one Windows PC. The numbers come from its own ledgers, not from memory. Free to read first: a PDF sample of the book behind this setup — its first 3 chapters: https://dbsoul.gumroad.com/l/autonomous-ai-agents-claude-code-free-sample My agent lives on scheduled tasks. One collects, one posts, one writes the daily ledger, one…

On November 3 at 13:41, an error was logged for the GPU driver. This caused every new scheduled task to be refused, a problem that persisted for 70 hours. Despite the machine remaining on, no new tasks could start, including the watchdog. The ledger's last entry showed a date of November 2, and the visit count in reports remained unchanged, suggesting a seemingly quiet week. On November 6 at 11:57, the machine unexpectedly shut down and rebooted, allowing the scheduled tasks to function again.

The issue stemmed from the design of the autonomous agent, which relied on three scheduled tasks: one for collecting data, another for posting updates, and a third that monitored the system. All three tasks shared a common failure mechanism. The original monitor was a task that checked for updates in a log file every five minutes.

If the log did not update within 45 minutes, it sent a message over HTTP and repeated the check every three hours until the issue was resolved. However, this design had limitations. For instance, if the monitor process failed during the outage or before its initial start, it would not be able to recover. Additionally, if the entire machine stopped, the entire system would also be affected.

The cause of the initial state that led to the outage was unknown, as the scheduler's log was disabled.

To address these shortcomings, a new watchdog process was created. Unlike the previous setup, this watchdog stayed running once started and continuously monitored the log file. If no update was detected for more than 45 minutes, it sent an HTTP message and continued checking every three hours until the problem was fixed. This design change ensured that the watchdog would remain active even during outages, providing a more reliable detection method.

However, this solution still has gaps. The original monitor was still launched by a scheduled task, meaning it could fail if the task itself encountered issues or if the machine shut down unexpectedly. Furthermore, the exact cause of the initial error state remained unclear, as the system log was not available for review.

Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.

Read the original at dev.to →

More in Tech

Two MV3 errors you hit right after bumping manifest_version (and the fix)

You change "manifest_version": 2 to 3 and the extension breaks. Two errors show up a lot: Service worker registration failed chrome.browserAction is undefined Below is a small made-up teaching example…

  • Switching manifestversion from 2 to 3 causes two common errors
  • Service worker registration fails in background page of MV3
  • chrome.browserAction renamed to chrome.action in MV3

The 10-minute code review I run before every merge

Most review comments are noise: style nits, hypothetical concerns, "consider adding a comment". A useful review answers three questions in order — does it break anything, does it handle the edges, is…

  • Ten-minute code review checklist streamlines process with AI assistance
  • First pass reviews behavior by describing system change in one sentence
  • Third pass evaluates if new teammate can understand module without author knowledge

WebSockets Explained: Real-Time Data Without Polling

A customer adds a ceramic mug to their basket on a small shop's website, then waits. The order page says Processing, and nothing changes until they refresh.

  • WebSockets enable real-time, two-way communication between web page and server.
  • Persistent connection allows server to push data to client without polling.

More from Saturday 7 November →