<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Robert</title>
    <description>The latest articles on DEV Community by Robert (@robswierk).</description>
    <link>https://dev.to/robswierk</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4053993%2Fb8f114ea-e5d9-4003-b6a1-1549fdddee94.png</url>
      <title>DEV Community: Robert</title>
      <link>https://dev.to/robswierk</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/robswierk"/>
    <language>en</language>
    <item>
      <title>An Etsy listing expired and dropped out of our catalogue</title>
      <dc:creator>Robert</dc:creator>
      <pubDate>Sun, 11 Oct 2026 10:00:00 +0000</pubDate>
      <link>https://dev.to/robswierk/an-etsy-listing-expired-and-dropped-out-of-our-catalogue-1d10</link>
      <guid>https://dev.to/robswierk/an-etsy-listing-expired-and-dropped-out-of-our-catalogue-1d10</guid>
      <description>&lt;p&gt;An alert fired on 2026-10-08 at 04:47 titled "Odnowienia: wygasło 1". Its body says the listing had expired on Etsy since the previous morning and dropped out of our catalogue, and that its review was already waiting in the panel. The listing was #132, a Kilo Code guide.&lt;/p&gt;

&lt;p&gt;The same day we shipped Audit 08.10, package D, in the new-Orqestra repo: 40 files changed, 741 lines added, 147 removed.&lt;/p&gt;

&lt;p&gt;One item in that package, FE8, means the Etsy review modal starts on the product's own tier.&lt;/p&gt;

&lt;p&gt;The facts do not say why this listing expired.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;If you sell on Etsy, make expiry something your own tooling reports and queues for review, so you hear about it from an alert instead of finding the gap in your catalogue later.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;p&gt;&lt;em&gt;Originally published at &lt;a href="https://neuragrowth.co/log/an-etsy-listing-expired-and-dropped-out-of-our-catalogue/" rel="noopener noreferrer"&gt;neuragrowth.co&lt;/a&gt;. NeuraGrowth is a one-person digital-products studio; this is the log of what its pipeline does and where it breaks.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>devops</category>
      <category>programming</category>
      <category>ai</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Celery task merges a product series into one guide: 13 files</title>
      <dc:creator>Robert</dc:creator>
      <pubDate>Sat, 10 Oct 2026 10:00:01 +0000</pubDate>
      <link>https://dev.to/robswierk/celery-task-merges-a-product-series-into-one-guide-13-files-2hml</link>
      <guid>https://dev.to/robswierk/celery-task-merges-a-product-series-into-one-guide-13-files-2hml</guid>
      <description>&lt;p&gt;Celery is where this change lives: a task named orqestra.renewal_merge that turns a product series and its bundle into one premium guide. No path did "from N products one". The rewrite keeps a part's place in its series. The bundle rebuild only merges PDFs. Regenerate stops at the old proposal's cap. The retire step knows no successor.&lt;/p&gt;

&lt;p&gt;The trigger is a button, "Scal w jeden poradnik premium", on a bundle's or a part's renewal card. It starts the Celery task, which builds its brief from the parts' manifests: the old pitch and the chapter lists. The record we have cuts off after that, so we will not describe the later steps.&lt;/p&gt;

&lt;p&gt;The change is 13 files, 1681 lines added and 27 removed.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;If your renewal or rebuild paths each handle one product, a request to combine several into one will fall between them, so give the combine its own task instead of stretching an existing one.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;p&gt;&lt;em&gt;Originally published at &lt;a href="https://neuragrowth.co/log/celery-task-merges-a-product-series-into-one-guide-13-files/" rel="noopener noreferrer"&gt;neuragrowth.co&lt;/a&gt;. NeuraGrowth is a one-person digital-products studio; this is the log of what its pipeline does and where it breaks.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>devops</category>
      <category>programming</category>
      <category>ai</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Our Claude and Obsidian MCP guide had no text to check</title>
      <dc:creator>Robert</dc:creator>
      <pubDate>Fri, 09 Oct 2026 10:00:00 +0000</pubDate>
      <link>https://dev.to/robswierk/our-claude-and-obsidian-mcp-guide-had-no-text-to-check-2gib</link>
      <guid>https://dev.to/robswierk/our-claude-and-obsidian-mcp-guide-had-no-text-to-check-2gib</guid>
      <description>&lt;p&gt;Our guide to setting up Claude with Obsidian over MCP got a warning from its renewal check on 2026-10-03. The alert read, in Polish, that the guide could not be checked because there was no text to check.&lt;/p&gt;

&lt;p&gt;The body of the alert gave the reason in one line: the guide has no text from which claims can be read. The recommendation that followed was a single word, retire. The record does not say why the text was missing, and we are not going to guess at it here.&lt;/p&gt;

&lt;p&gt;The alert had severity warn and kind listing_renewal. It came from the renewal run that also lists the guide by its catalogue number, 9.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;If you sell or maintain a setup guide for a fast-moving tool like Claude with MCP, make sure its text can actually be read by whatever checks it, because an unreadable guide cannot be verified.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;p&gt;&lt;em&gt;Originally published at &lt;a href="https://neuragrowth.co/log/our-claude-and-obsidian-mcp-guide-had-no-text-to-check/" rel="noopener noreferrer"&gt;neuragrowth.co&lt;/a&gt;. NeuraGrowth is a one-person digital-products studio; this is the log of what its pipeline does and where it breaks.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>devops</category>
      <category>programming</category>
      <category>ai</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Gemini reviewed a generated cover and flagged garbled chip text</title>
      <dc:creator>Robert</dc:creator>
      <pubDate>Thu, 08 Oct 2026 10:00:00 +0000</pubDate>
      <link>https://dev.to/robswierk/gemini-reviewed-a-generated-cover-and-flagged-garbled-chip-text-d0b</link>
      <guid>https://dev.to/robswierk/gemini-reviewed-a-generated-cover-and-flagged-garbled-chip-text-d0b</guid>
      <description>&lt;p&gt;Gemini looked at the cover.png for our Muse Gadgets Field Guide: From ESP32 to Live Device and returned a fail verdict. The flag it raised was text on the graphic. Its note read: "Misspelled and garbled AI-generated text on the microchip ('Muse Gadagets', 'Muso Device')."&lt;/p&gt;

&lt;p&gt;The same note says the image otherwise matches the dark, technical look we wanted. The only problem it found was the lettering on the central chip.&lt;/p&gt;

&lt;p&gt;The review is advisory. The product was not blocked, and the alert only recommends regenerating the cover before publication if we agree with the verdict. The record does not say why the generated image garbled the words, so we will not guess at a cause.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;If an image generator puts text on your cover, have something read that text back before you publish, because the misspelling can sit in a place you stop looking.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;p&gt;&lt;em&gt;Originally published at &lt;a href="https://neuragrowth.co/log/gemini-reviewed-a-generated-cover-and-flagged-garbled-chip-text/" rel="noopener noreferrer"&gt;neuragrowth.co&lt;/a&gt;. NeuraGrowth is a one-person digital-products studio; this is the log of what its pipeline does and where it breaks.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>devops</category>
      <category>programming</category>
      <category>ai</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Two Etsy listings expired and dropped out of the catalogue</title>
      <dc:creator>Robert</dc:creator>
      <pubDate>Wed, 07 Oct 2026 18:17:29 +0000</pubDate>
      <link>https://dev.to/robswierk/two-etsy-listings-expired-and-dropped-out-of-the-catalogue-1423</link>
      <guid>https://dev.to/robswierk/two-etsy-listings-expired-and-dropped-out-of-the-catalogue-1423</guid>
      <description>&lt;p&gt;On 2026-10-07 at 04:47 our renewal alert fired with a warn severity. Two Etsy listings, #130 and #131, had expired and dropped out of the catalogue.&lt;/p&gt;

&lt;p&gt;The alert says the listings expired on Etsy the previous morning. The facts do not say why the listings were not renewed before they expired, so we are not going to guess at a cause.&lt;/p&gt;

&lt;p&gt;What the alert does give us is a time of detection and a list of two: #130 Community Helpers Watercolor Bilingual Flashcards (EN+PL), and #131 Perplexity-First Content Architecture for Creator Brands.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;If you sell on Etsy, treat the expiry date of each listing as something to be warned about before it passes, because an alert that fires afterwards only tells you what you already lost.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;p&gt;&lt;em&gt;Originally published at &lt;a href="https://neuragrowth.co/log/two-etsy-listings-expired-and-dropped-out-of-the-catalogue/" rel="noopener noreferrer"&gt;neuragrowth.co&lt;/a&gt;. NeuraGrowth is a one-person digital-products studio; this is the log of what its pipeline does and where it breaks.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>devops</category>
      <category>programming</category>
      <category>ai</category>
      <category>webdev</category>
    </item>
    <item>
      <title>YouTube OAuth invalid_grant: refresh token expired or revoked</title>
      <dc:creator>Robert</dc:creator>
      <pubDate>Tue, 06 Oct 2026 10:00:01 +0000</pubDate>
      <link>https://dev.to/robswierk/youtube-oauth-invalidgrant-refresh-token-expired-or-revoked-2ilm</link>
      <guid>https://dev.to/robswierk/youtube-oauth-invalidgrant-refresh-token-expired-or-revoked-2ilm</guid>
      <description>&lt;p&gt;On 2026-09-30 a YouTube refresh token stopped working for us. The message our code surfaced was "YouTube refresh_token has expired or been revoked. Reconnect YouTube in /settings (Google OAuth invalid_grant)."&lt;/p&gt;

&lt;p&gt;The first alert was orqestra.kids_stats, which failed at 05:20 with YouTubeRefreshExpired and the same message. The second was orqestra.kids_publish, at 14:00, same exception. The third was the alert for the Kids publish slot zwierzeta-006, which did not go out. Nothing was sent in its place, and the alert told us to check the videos panel and the channel before publishing it by hand.&lt;/p&gt;

&lt;p&gt;The two scheduled jobs failed with the same error eight hours apart.&lt;/p&gt;

&lt;p&gt;The message names two possible states, expired or revoked, and the record does not say which one it was or why. The error code is Google's invalid_grant on the OAuth refresh.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;When a YouTube refresh_token goes bad, every job that uses it fails the same way, so treat the first failed read as the warning and reconnect before the next publish slot.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;p&gt;&lt;em&gt;Originally published at &lt;a href="https://neuragrowth.co/log/youtube-oauth-invalid-grant-refresh-token-expired-or-revoked/" rel="noopener noreferrer"&gt;neuragrowth.co&lt;/a&gt;. NeuraGrowth is a one-person digital-products studio; this is the log of what its pipeline does and where it breaks.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>devops</category>
      <category>programming</category>
      <category>ai</category>
      <category>webdev</category>
    </item>
    <item>
      <title>The Instagram API cannot delete media, so retired products leave posts behind</title>
      <dc:creator>Robert</dc:creator>
      <pubDate>Mon, 05 Oct 2026 18:26:10 +0000</pubDate>
      <link>https://dev.to/robswierk/the-instagram-api-cannot-delete-media-so-retired-products-leave-posts-behind-11ej</link>
      <guid>https://dev.to/robswierk/the-instagram-api-cannot-delete-media-so-retired-products-leave-posts-behind-11ej</guid>
      <description>&lt;p&gt;The Instagram API cannot delete media. That is the exact reason our retirement job gave on 3 October 2026 when it pulled product #8, Lovable Launch Playbook: 0 to Live in 48 Hours: "Instagram's API cannot delete media: delete the post in the app".&lt;/p&gt;

&lt;p&gt;The job removed 6 items on its own and handed 3 back to a person. Two of those were Instagram, a post and a reel, and one was a Pinterest pin, which the job reported as manual and to be deleted by hand.&lt;/p&gt;

&lt;p&gt;It was the same pattern on the other two retirements in this window. Product #44, Train the Robot: AI Activity Book for Ages 6-10, removed 5 automatically and left 4 for hand deletion, 2 of them Instagram. Product #42, Bilingual Emotions Poster Pack EN/ES, did the same: 5 automatic, 4 manual, 2 of them Instagram.&lt;/p&gt;

&lt;p&gt;TikTok showed up in two of the three with its own message, "TikTok's API cannot delete posts: delete the video in the app", and Pinterest in all three.&lt;/p&gt;

&lt;p&gt;The record does not say why Instagram's API has no delete for media, only that it has none.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;If you publish to Instagram through its API, assume you cannot take it back the same way, and give every product a manual-deletion list for the posts you cannot remove from code.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;p&gt;&lt;em&gt;Originally published at &lt;a href="https://neuragrowth.co/log/the-instagram-api-cannot-delete-media-so-retired-products-leave-posts/" rel="noopener noreferrer"&gt;neuragrowth.co&lt;/a&gt;. NeuraGrowth is a one-person digital-products studio; this is the log of what its pipeline does and where it breaks.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>devops</category>
      <category>programming</category>
      <category>ai</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Claude API returns 400 when the credit balance runs out</title>
      <dc:creator>Robert</dc:creator>
      <pubDate>Sat, 03 Oct 2026 10:00:00 +0000</pubDate>
      <link>https://dev.to/robswierk/claude-api-returns-400-when-the-credit-balance-runs-out-30kh</link>
      <guid>https://dev.to/robswierk/claude-api-returns-400-when-the-credit-balance-runs-out-30kh</guid>
      <description>&lt;p&gt;Our orqestra.kids_episode task ended with an AnthropicError: "Your credit balance is too low to access the Anthropic API. Please go to Plans &amp;amp; Billing to upgrade or purchase credits".&lt;/p&gt;

&lt;p&gt;The status code is 400, with the error type invalid_request_error.&lt;/p&gt;

&lt;p&gt;The same failure showed up in three places at once. The task failure alert fired. A second alert said that episode alfabet-007, letter S, was not produced. A third, marked critical, said the whole pipeline was stopped, because every job that depends on this provider would fail the same way until the account was topped up. That covers creation, discovery, copy and critique.&lt;/p&gt;

&lt;p&gt;The alert for the missed episode says the topic stays in the plan and the next run will try it again.&lt;/p&gt;

&lt;p&gt;The facts we have do not say how the balance reached zero or how long it had been low. They also do not say whether the earlier runs were affected. The task alert carries a request id on the Claude API side.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;If you run Claude through the API, treat a 400 with a credit balance message as a billing stop for everything that uses the key, not as a bad request to retry.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;p&gt;&lt;em&gt;Originally published at &lt;a href="https://neuragrowth.co/log/claude-api-returns-400-when-the-credit-balance-runs-out/" rel="noopener noreferrer"&gt;neuragrowth.co&lt;/a&gt;. NeuraGrowth is a one-person digital-products studio; this is the log of what its pipeline does and where it breaks.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>devops</category>
      <category>programming</category>
      <category>ai</category>
      <category>webdev</category>
    </item>
    <item>
      <title>MCP guide flagged stale: HTTP/SSE transport and Brave Search package</title>
      <dc:creator>Robert</dc:creator>
      <pubDate>Fri, 02 Oct 2026 10:00:00 +0000</pubDate>
      <link>https://dev.to/robswierk/mcp-guide-flagged-stale-httpsse-transport-and-brave-search-package-3nfb</link>
      <guid>https://dev.to/robswierk/mcp-guide-flagged-stale-httpsse-transport-and-brave-search-package-3nfb</guid>
      <description>&lt;p&gt;On 2026-09-23 our product freshness check checked one of our MCP guides, product #133, against the current state of the network and returned update_needed, with 3 changes across sections 2 and 5.&lt;/p&gt;

&lt;p&gt;The check's own summary says the core architecture and the n8n node names in the guide are fully intact. Two facts are not. HTTP/SSE is now the deprecated MCP transport, and the current pairing is stdio plus Streamable HTTP. The second fact is the Brave Search MCP reference, which points to a superseded community package. The alert text names an official &lt;a class="mentioned-user" href="https://dev.to/brave"&gt;@brave&lt;/a&gt;/brave-search-mcp- package as the replacement, but the name is cut off in the alert, so we are not quoting it in full.&lt;/p&gt;

&lt;p&gt;The alert counts 3 changes against 2 facts, and the text we have does not say what the third change is.&lt;/p&gt;

&lt;p&gt;The alert was a warning, not an error, and the edit mode is manual. An update_needed product is not rewritten on its own. Products marked obsolete are a different case and stay a decision for the founder.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;If you wrote anything about MCP transports or MCP server packages, recheck both: HTTP/SSE is no longer the current pairing, and a community package may have been superseded by an official one.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;p&gt;&lt;em&gt;Originally published at &lt;a href="https://neuragrowth.co/log/mcp-guide-flagged-stale-http-sse-transport-and-brave-search-package/" rel="noopener noreferrer"&gt;neuragrowth.co&lt;/a&gt;. NeuraGrowth is a one-person digital-products studio; this is the log of what its pipeline does and where it breaks.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>devops</category>
      <category>programming</category>
      <category>ai</category>
      <category>webdev</category>
    </item>
    <item>
      <title>What We Shipped from July to September 2026 at NeuraGrowth</title>
      <dc:creator>Robert</dc:creator>
      <pubDate>Thu, 01 Oct 2026 10:00:01 +0000</pubDate>
      <link>https://dev.to/robswierk/what-we-shipped-from-july-to-september-2026-at-neuragrowth-51la</link>
      <guid>https://dev.to/robswierk/what-we-shipped-from-july-to-september-2026-at-neuragrowth-51la</guid>
      <description>&lt;p&gt;Between 17 July 2026 and 20 September 2026, six products shipped at NeuraGrowth. Three are PDF guides priced at $6.99 each, available on Etsy and Gumroad. Two are books on KDP, available in digital and print editions. One is a book with no platform or price in the facts we have. None of them are children's material. The majority of this catalogue is practical guides for adults who are building things, working alone, or trying to get a handle on tools that change quickly.&lt;/p&gt;

&lt;p&gt;This post is a plain record of what shipped, in the order it shipped. If you are here from the family side of the catalogue, that context is noted below. But it is worth being clear up front: this particular run belongs to the guide and book side of things.&lt;/p&gt;

&lt;h2&gt;
  
  
  The first product shipped in July, not September
&lt;/h2&gt;

&lt;p&gt;Product 171, the 1099-DA Survival Guide: Fix Your Crypto Taxes Now, shipped on 17 July 2026. It is a PDF guide, available on Etsy and Gumroad for $6.99.&lt;/p&gt;

&lt;p&gt;The 1099-DA is a tax form tied to cryptocurrency holdings. If your household holds any crypto, even a small amount, and you are not certain how to report it, that is what this guide addresses. It does not provide legal advice. It provides a working framework for understanding what the form asks and how to approach the figures.&lt;/p&gt;

&lt;h2&gt;
  
  
  Two PDF guides shipped in the first week of September
&lt;/h2&gt;

&lt;p&gt;Product 185, The Ponytail Field Guide for Vibe-Coders, shipped on 8 September 2026 at $6.99. Product 186, MoneyPrinterTurbo: Automate, Publish, and Monetize at Scale, shipped on 9 September 2026, also at $6.99. Both are PDF guides on Etsy and Gumroad.&lt;/p&gt;

&lt;p&gt;The Ponytail Field Guide is for people who are coding by feel and iteration rather than by formal training. The guide treats that approach as a real practice rather than an apology for one.&lt;/p&gt;

&lt;p&gt;MoneyPrinterTurbo is a walkthrough for a specific open-source tool that automates short-form video content. If someone in your household is trying to build a small publishing or content operation, that is the context for this one.&lt;/p&gt;

&lt;h2&gt;
  
  
  Two books about running an AI-assisted office shipped in mid-September
&lt;/h2&gt;

&lt;p&gt;Product 189, AI Security for the One-Person Operator, shipped on 15 September 2026. It is a 157-page book, available on KDP in digital and print editions. You can find it at &lt;a href="https://neuragrowth.co/books/ai-security-solo-operator/" rel="noopener noreferrer"&gt;https://neuragrowth.co/books/ai-security-solo-operator/&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The book covers the security considerations that come with running AI tools in a small operation, where there is no IT department and no one else checking your work. That is a common situation in 2026, and the book is written for it.&lt;/p&gt;

&lt;p&gt;Product 190, Review the Output: A Quality Loop for the One-Person AI Office, shipped on 19 September 2026, also on KDP in digital and print. The problem it addresses is straightforward: when an AI produces something, how do you know it is right? That question does not go away just because the output looks plausible. The book is at &lt;a href="https://neuragrowth.co/books/review-the-output-book4/" rel="noopener noreferrer"&gt;https://neuragrowth.co/books/review-the-output-book4/&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  The final product of this run has fewer details on record
&lt;/h2&gt;

&lt;p&gt;Product 191, Choose the Work, shipped on 20 September 2026. The facts we have do not include a price or a sales platform, so we will not invent them. It is a book, and it completed this run.&lt;/p&gt;

&lt;p&gt;The record does not say more than that about this one.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to read this catalogue if you are coming from the family side
&lt;/h2&gt;

&lt;p&gt;The NeuraGrowth catalogue has a bilingual learning line for children. That line is separate from everything described in this post. If you came looking for something to use at home with a child, that is the right place to start, and none of the six products above are part of it.&lt;/p&gt;

&lt;p&gt;If you are here because you are managing a household and a solo work life at the same time, the six products above are all aimed at the working side of that. The AI security book and the quality-loop book both address problems that come up in day-to-day AI-assisted work. The PDF guides cover more specific topics: crypto tax reporting, coding by iteration, and a particular automation tool.&lt;/p&gt;

&lt;p&gt;The PDF guides are $6.99 each. The KDP books have print editions available. Choose the Work has no price in the facts we have.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Orqestra does to make this pace possible
&lt;/h2&gt;

&lt;p&gt;Six products shipping between 17 July and 20 September is a pace that requires a production pipeline running in the background. Orqestra, the agent system behind NeuraGrowth, handles a large part of that. When it works, products move from draft to finished without stopping. When it does not, the log on this site records what happened.&lt;/p&gt;

&lt;p&gt;One recent example: a Pydantic validation error blocked a bilingual episode from reaching staging. That kind of failure is routine at this pace, and logging it is how we keep track of where the system breaks. You can read about that particular one at &lt;a href="https://neuragrowth.co/log/pydantic-s-string-too-long-blocked-a-bilingual-episode-from-staging/" rel="noopener noreferrer"&gt;https://neuragrowth.co/log/pydantic-s-string-too-long-blocked-a-bilingual-episode-from-staging/&lt;/a&gt;. The log also covers failures in other parts of the pipeline, including service restarts and tool-level checks, all of which affect what ships and when.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;If you are trying to work out what belongs on your list from this run, match the product to the problem you actually have. A 157-page book is right if you want to think through AI security in a small operation at some depth. A $6.99 PDF is right if you have one specific topic you need a working answer on. The facts do not tell us enough about Choose the Work to say more than that it shipped on 20 September 2026. Start with the description that fits the problem, not with the format or the price.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;p&gt;&lt;em&gt;Originally published at &lt;a href="https://neuragrowth.co/blog/what-we-shipped-from-july-to-september-2026-at-neuragrowth/" rel="noopener noreferrer"&gt;neuragrowth.co&lt;/a&gt;. NeuraGrowth is a one-person digital-products studio; this is the log of what its pipeline does and where it breaks.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>productivity</category>
      <category>showdev</category>
      <category>beginners</category>
    </item>
    <item>
      <title>systemd journal shows a watchdog restarting worker and beat</title>
      <dc:creator>Robert</dc:creator>
      <pubDate>Wed, 30 Sep 2026 10:00:00 +0000</pubDate>
      <link>https://dev.to/robswierk/systemd-journal-shows-a-watchdog-restarting-worker-and-beat-2nm3</link>
      <guid>https://dev.to/robswierk/systemd-journal-shows-a-watchdog-restarting-worker-and-beat-2nm3</guid>
      <description>&lt;p&gt;On 2026-09-25 the host watchdog on our VPS restarted two services, and the only place the details live is the systemd journal.&lt;/p&gt;

&lt;p&gt;The alerts were three, all severity warn. Each said the service was flagged unhealthy and the host watchdog restarted it. Reason: unhealthy_or_missing. That was worker at 14:28:56, then beat at 22:49:31, then worker again at 22:49:32.&lt;/p&gt;

&lt;p&gt;The last two are one second apart. The record does not say whether the two are related.&lt;/p&gt;

&lt;p&gt;The reason string is unhealthy_or_missing. The alert does not say which it was for either service, and we have not written down why.&lt;/p&gt;

&lt;p&gt;We are not going to guess at a cause here. The facts we have are the service names, the timestamps, the shared reason string and the pointer to the journal.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;When a watchdog reports a reason that covers more than one failure, treat the alert as a pointer to the journal and read the unit's logs before you decide what went wrong.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;p&gt;&lt;em&gt;Originally published at &lt;a href="https://neuragrowth.co/log/systemd-journal-shows-a-watchdog-restarting-worker-and-beat/" rel="noopener noreferrer"&gt;neuragrowth.co&lt;/a&gt;. NeuraGrowth is a one-person digital-products studio; this is the log of what its pipeline does and where it breaks.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>devops</category>
      <category>programming</category>
      <category>ai</category>
      <category>webdev</category>
    </item>
    <item>
      <title>YouTube API invalid_grant when a refresh token expires</title>
      <dc:creator>Robert</dc:creator>
      <pubDate>Wed, 30 Sep 2026 04:30:46 +0000</pubDate>
      <link>https://dev.to/robswierk/youtube-api-invalidgrant-when-a-refresh-token-expires-2hoe</link>
      <guid>https://dev.to/robswierk/youtube-api-invalidgrant-when-a-refresh-token-expires-2hoe</guid>
      <description>&lt;p&gt;The YouTube API returned "invalid_grant" during our nightly token refresh at 03:00 on 23 September. The alert kind was youtube_refresh_expired, and the effect was immediate: nothing could be uploaded to the connected channel until the token was replaced.&lt;/p&gt;

&lt;p&gt;Google issues refresh tokens that can expire or be revoked. Our alert body notes one specific pattern worth watching: if the error arrives roughly every 7 days after an OAuth connection, it is consistent with a 7-day refresh-token policy that applies to apps still in testing mode. If the interval is irregular, the cause is something else. The record does not say which applied here.&lt;/p&gt;

&lt;p&gt;The alert body instructed a reconnect through settings, in the YouTube row.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;An invalid_grant response from the YouTube API cannot be retried away - it requires a fresh OAuth flow, so build an alert that catches it before your next scheduled upload.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;p&gt;&lt;em&gt;Originally published at &lt;a href="https://neuragrowth.co/log/youtube-api-invalid-grant-when-a-refresh-token-expires/" rel="noopener noreferrer"&gt;neuragrowth.co&lt;/a&gt;. NeuraGrowth is a one-person digital-products studio; this is the log of what its pipeline does and where it breaks.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>devops</category>
      <category>programming</category>
      <category>ai</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
