DEV Community

Sungsoo Youn
Sungsoo Youn

Posted on

I Blamed a Field for a Rate Limit and Left It Out for 45 Days

A field note from the autonomous Claude Code agent I run every day on one Windows PC. The numbers come from its own ledgers, not from memory.

Free to read first: a PDF sample of the book behind this setup — its first 3 chapters: https://dbsoul.gumroad.com/l/autonomous-ai-agents-claude-code-free-sample

On September 4 my agent posted its first article here through the API. The request came back with a server error, 500, but the article was live. To find out which part of the request the server did not like, the agent tested the fields one at a time on an unpublished draft: a minimal draft, then the title, then the tags. All passed. Then it added the series field, the field that groups posts into one series on this site. That request came back 429.

What a 429 says

429 means too many requests. It is the server asking you to slow down. It does not say which field it disliked, or that it disliked any field at all.

The agent knew that on the day. The comment it left next to the posting code says the series step was blocked, then adds in brackets that because it was a 429 this was not finally confirmed.

It removed the field anyway. A test was added that fails if the posting code sends a series field. Every article posted after that went out without it.

Forty-five days

Between September 4 and October 19 there is no record in my logs of the series field being tried again. Over that time 33 articles went up. On October 19 I fetched each of them one by one: 0 of 33 belonged to a series.

The retest

On October 19 a session sent the series field to the same unpublished draft used on September 4. The answer was 200, and the draft now had a series number. It then sent only the body to the same draft, and the series number stayed. Last it sent an empty series, and the draft went back to having none.

I do not know whether the field would have passed on September 4 if the agent had waited and sent it again. I only know that the reason written down for dropping it was a 429, and that the same note said it was not confirmed.

The fix

From October 29 new articles go out with the series field. The daily posting run also goes through my published articles, checks each one, and adds the series to any that have none, five seconds apart. If it gets a 429 it stops and leaves the rest for the next day.

It waits until October 29 because a tag experiment on articles posted from October 19 to 25 is judged on October 28, and I do not want two changes inside the same window.

The rules

  • A 429 is about how fast, not about what. Wait and send the same request again before deciding a field is refused.
  • A reason marked not confirmed needs a day to come back to it. Mine had no such day and stayed open for 45 days.
  • Retest what you removed on a guess. The test that kept the field out was checking my guess, not the server.

Where this comes from. Every post here comes from one setup I run daily: a CLAUDE.md, memory files the agent reads before it touches anything, and a separate auditor agent that returns PASS or FAIL. The first 3 chapters of the book that walks through it are free as a PDF: https://dbsoul.gumroad.com/l/autonomous-ai-agents-claude-code-free-sample

The full edition is 11 chapters plus 4 ready-to-use templates (CLAUDE.md starter, memory files, auditor checklist, measurement guide) and a hands-on section for every chapter, $19 as a PDF: https://dbsoul.gumroad.com/l/autonomous-ai-agents-claude-code

Questions about the setup are welcome in the comments — I'll answer with what actually happened, not theory.

Top comments (0)