# My YouTube automation kept "running" for almost 6 months. The bot made 1,376 commits. Zero uploads, and I had no idea.

> Source: <https://dev.to/quiet_pipelines/my-youtube-automation-kept-running-for-almost-6-months-the-bot-made-1376-commits-zero-uploads-11c5>
> Published: 2026-11-15 17:42:04+00:00

I run a small Python pipeline on GitHub Actions that generates and uploads Shorts for a few YouTube channels. Five scheduled workflows, including one I proudly named "Self-Healing Health Check".

Last weekend I finally opened the Actions tab. Every recent run was red. Upload runs, growth jobs, and the self-healing job itself. Meanwhile the bot had pushed 1,376 automated commits since May, so from a distance the repo looked alive. Last successful upload before the fix: May 25. That is 175 days of nothing.

I sat down with an AI coding agent and had it run every stage and classify each failure instead of fixing anything. Result: 14 separate problems.

So 9 of 14 had nothing to do with my code. The world moved and my pipeline stayed still.

The actual root cause was not in the repo at all. My Google OAuth app was still in "Testing" status, which means refresh tokens die after 7 days. Every re-auth I had ever done was a 7-day fix. The error in the logs was just invalid_grant.

Fixing that had its own trap: the "Publish app" button was greyed out with a vague message about completing the Branding page, even though every required field was filled. It only unlocked after I added a home page URL, a privacy policy URL and an authorized domain. For a personal uploader script. I used a tiny public GitHub repo with a README and PRIVACY.md.

Other things I learned the hard way that night:

What fixed production in the end was almost no code. It was: find the real cause, change one Google setting, re-auth once, update one secret. First green scheduled run in a long time followed a few minutes later.

What I am changing:

Question for people running unattended automations: how do you catch the "everything is technically running but nothing is being produced" case? Heartbeats? Output checks? Something smarter?

Note: I wrote this post with AI assistance. The incident, numbers and fixes are from my own pipeline.
