Devlog #2 — breakages, fixes, and where it stands
continuing from #1,
Because apparently the pipeline had more ways to die than i budgeted my mental piece for 😭 =_= 😭
pipeline breakages that made me feel cursed
a non-exhaustive list of things that broke autonomy (these are the majot ones, many more small things too):
-
claim SQL bug — null
failure_codemade healthy queued jobs invisible toclaim_next_job. queue looked alive. nothing claimed. i checked daily upload limits, n8n, worker health… everything green. the bug was one boolean expression treating SQL NULL like false. -
retry after login recovery did nothing — youtube was
login_required, instagram already uploaded, admin hit retry, worker said “no platforms need upload” because login_required wasn’t in the retryable set. i fixed the session, clicked retry, watched nothing happen, questioned my life choices. -
zombie uploading jobs — crash mid-instagram after youtube succeeded. status stayed
uploading. claim blocked. daily limit logic counted the zombie as an inflight upload. cascade of sadness overflowed. - drive cleanup count lying — overview said “6 files need cleanup” and half were old cancelled junk. made the ops panel feel broken even when it wasn’t (fake failures T_T).
- yt-dlp randomly failing on some instagram urls with “no video formats found.” not a glamorous issue. still ate an hour.
each time the dashboard looked calm and the logs were quiet for 30+ minutes, that was the tell. silence usually meant a stuck lock, not “everything is fine.”
how i actually got past it (atleast for the meanwhile)
i stopped trying to be clever and started treating the worker like a hostile roommate.
- if an upload hangs longer than ~12 minutes, kill it and mark that platform failed
- if a job is still
uploadingafter the lock expires / goes stale, auto-recover it on the next claim instead of waiting for me to notice - if studio shows Create and we’re not on an auth URL, we’re logged in — stop screaming about 2fa banners
- scrape share urls from anchors, inputs, and page text, because youtube’s dialog is allergic to consistent DOM
- keep secrets and playwright profiles off github. public repo + demo read-only login so people can poke the UI without yeeting my jobs
also: verify delay went from 30 minutes to 5 for local testing because waiting half an hour to learn the upload silently failed was making me insane.
where it stands
it kinda works. not “enterprise reliable.” more like “if my pc is awake and chrome profiles are healthy, videos move.” submit is public. admin dashboard shows queue / failed review / accounts. demo user can look, can’t smash retry/delete. real uploads still need my laptop + n8n and docker which runs on it.
frustrations that still remain (T_T) :
local dependency, playwright flakiness, platforms changing UI for sport, and the eternal fear that tomorrow’s youtube banner invents a new sentence that trips the detector again.
but i went from “i will paste this reel into six tabs” to “drop the link and let the queue cook.” for a broke-student compromise architecture, that’s the win i care about.
This devlog shows only 1hr, cuz actually 60-70% of work was done in previous timed devlog, but I hit the character limit.
try the demo
if you want to click around without breaking anything:
- url: https://project-ap-i.vercel.app
- username:
ProjectAPIDemo - password:
ProjectAPI@13
submit page is public. dashboard demo login is read-only (you can browse, you cannot smash retry/delete/account buttons).
thanks for reading these long-ass devlogs. seriously fr !!
if you made it through both, you now know more about my chrome profiles than my friends do :)
Comments 0
No comments yet. Be the first!
Sign in to join the conversation.