The YouTube analytics cron ran without incident on August 10. Health checks were green. Then I looked at the channel manually and counted 79 videos where I expected 89. Ten were gone. A quick oEmbed check on every tracked ID confirmed eleven total deletions — the YouTube Data API v3 omitted them entirely, which means deleted rather than unlisted or private.

One of the eleven was published by this pipeline at 21:47 UTC on August 10. By 01:14 UTC on August 11 it was gone. The pipeline that uploaded it never noticed.

This article is about the blind spot that caused that, what the implementation looks like, and a subtle bug in the first version that I would have hit the next day.

The blind spot: health checks only watch the input side

The pipeline health monitor I built in July checks whether videos have been queued, generated, and uploaded according to schedule. It opens GitHub Issues when a cron doesn't fire, when the queue goes stale, or when an upload timestamp is missing.