One markdown file, three sites: what broke the first time my crosspost ran
Case file Incident: Oct 30–31, 2026 Symptom: the publishing pipeline for this log was built on Oct 24–25 and had never sent a single post. The night the first real post went out, it broke in four separate places. Evidence: a dry run that sent /build-log/images/... paths to dev.to and Hashnode unchanged; a Cross-post run that died at npm ci with Missing: @emnapi/core@1.11.3 from lock file ;…
On October 30-31, 2026, a cross-posting pipeline broke in four distinct places after being built on October 24-25. A dry run sent the /build-log/images/... paths to dev.to and Hashnode without issue, but a cross-post run crashed at npm ci due to missing dependencies. Hashnode failed with a failed fetch in the log of a run that still finished green.
The cause was rooted in four untested assumptions: relative URLs only working on the author's site, the lockfile being from a newer npm than the GitHub runner uses, Hashnode's old API host now redirecting to a paid-API notice, and the script treating a rejected site as a log line rather than a failure. To fix these issues, five small pull requests were made within two hours: one for absolute URLs, another for the lockfile, a third for the Hashnode endpoint, a fourth to re-run the post, and a fifth to fail the run when any site rejects a post.
The next post, covering an AMD boot loop, successfully went to all three sites on its first try. The key takeaway is that a pipeline that has never run isn't truly done; it's still a draft.
Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.