はじめに
Qiita Tech Festa 2026 の 記事数部門・20記事達成 でもらえる Qiitan ぬいぐるみ が欲しくて、執筆環境を整えて記事を書いてきました(笑)
執筆そのものはだいたい回るようになったのに、締切日(7/13)に 新規記事を10本 push したところ、10本目 の 顔文字ホワイトリストの記事 で GitHub Actions がコケたんです。
エラーは QiitaRateLimitError。一定時間内の投稿数制限 です。
猫ぬいぐるみのために量産体制を作ったのに、最後の関門で API に止められた……。
打算の塊が報いを受けた話です (´﹃`)
この記事は、笑い話として「何が起きたか」と「次にどうするか」をメモしたものです。
同じように キャンペーン の締切前に走っている方の参考になれば嬉しいです。
想定読者
- Qiita Tech Festa 2026 のようなキャンペーンで記事数を稼いでいる方
- Qiita CLI + GitHub Actions で
mainpush 投稿している方 - 「push したのに Qiita に出ない!」と焦った経験がある方
- インフラの失敗談が好きな方 (=^・ω・^=)
私の属性
- 30代女性・事務職
- このブログは Qiita CLI + GitHub Actions で運用
- 執筆環境の話は Qiita Tech Festa 20記事を目指して整えた Cursor 執筆環境 にまとめ済み
- 今回レート制限に引っかかった 10本目 は 絵文字の画風が苦手なので、Qiita執筆Skillに顔文字ホワイトリストを作った話(0015)
- ぬいぐるみ欲しさは本気(でも記事の質は……まあ頑張る)
何が起きたか
背景:20記事と猫ぬいぐるみ
Qiita Tech Festa 2026 の Qiita Award・記事数部門 では、期間中(2026/6/1〜7/13)に対象キャンペーンへ投稿した記事数で賞が決まります。
| 達成数 | 賞品(公式ページより) |
|---|---|
| 20記事 | Qiitan ぬいぐるみ + 電子バッジ + サイト内に Qiita ID 掲載 |
| 10記事 | 電子バッジ + サイト内に Qiita ID 掲載 |
| 1記事ごと | 電子バッジ |
私の目標は 20記事=猫ぬいぐるみ です。
そのために drafts/ で下書き → npm run promote → git push という流れを回してきました。
7/13 が Sprint の投稿締切日。
「あと数本! push すれば Actions が投稿してくれる!」という気持ちで、締切日に記事をまとめて公開しようとしました。
エラー:QiitaRateLimitError
0015(顔文字ホワイトリストの記事) を promote して main に push したところ(21:51)、GitHub Actions の Publish articles が失敗。
ログに出ていたメッセージはこんな感じでした。
QiitaRateLimitError: サービスの安定運用のため、一定時間内の投稿数を制限させていただいております。
下書き保存の上、しばらく時間をおいてから再度お試しください。
CLI 側の表示も同様で、
Qiita APIのレートリミットに達しました
しばらく時間を置いてから再度お試しください
記事の中身や Front Matter の問題ではなく、短時間に投稿しすぎた 側のエラーでした。
……せっかく 0015 を仕上げたのに、Qiita 側が「ちょっと待って」と言ってきたんです。。。。(lll __ __)バタッ
(追記:22:15 に npx qiita publish で単体投稿したら通りました。この記事 0016 を書いている時点では、0015 は Qiita に載っています)
なぜ締切日に刺さったか
振り返ると、原因はシンプルです。
7/13(締切日)だけで、新規記事を10本 promote → push していた んです。
内訳は git のコミット時刻(JST)ベースです。
| 時刻 (JST) | 記事 | 結果 |
|---|---|---|
| 00:34 | 0006 | 投稿成功 |
| 07:04 | 0007 | 投稿成功 |
| 12:36 | 0008 | 投稿成功 |
| 12:49 | 0009 | 投稿成功(12分後。ここだけ見ると 13分で2本) |
| 18:16 | 0010 | 投稿成功 |
| 19:45 | 0011 | 投稿成功 |
| 20:15 | 0013 | 投稿成功 |
| 20:48 | 0012 | 投稿成功 |
| 21:40 | 0014 | 投稿成功 |
| 21:51 | 0015 | Actions で レート制限で失敗 |
| 22:15 | 0015 |
npx qiita publish で 投稿成功(24分後に再試行) |
21:51 の push 時点では、その日の新規投稿は 9本成功・0015だけ失敗。
0014(21:40)から 11分後 に 0015 を追い込んだところで、Actions 側は止められました。
夕方以降だけ見ると、19:45〜21:51 の 約2時間で5本(0011 → 0013 → 0012 → 0014 → 0015)を連続 push していました。
環境は量産向けに作ったのに、締切日に 一日で10本 出そうとしたのが裏目に出た感じです(笑)
あわせて、
- GitHub Actions は
qiita publish --allで差分を一気に反映する - 新規投稿以外の 既存記事の更新 push も、その日は何度か走っていた(クロスリンク追加など)
つまり 「環境は量産向け。でも API は連投を許さない」 というギャップに引っかかりました。
執筆環境を整えた記事では「あとは手を動かすだけ」と書いていたのに、最後は 待つ ことになりそうです(笑)
自分で自分のフラグ回収をしている気分です (´・ω・`)
対処:時間をおいて、1本ずつ投稿
やったこと
-
git push自体は成功している(public/には記事がある) - Qiita への反映だけ Actions が失敗(21:51、22:02 の Re-run も失敗)
-
15分ほど空けて、Actions ではなく
npx qiita publishで1本だけ 投稿
0015 は次のコマンドで通りました(22:15 実行)。
npx qiita publish 0015-qiita-kaomoji-whitelist
publish --all(Actions が使う方式)だと差分をまとめて送るので、レート制限に当たりやすい。
1本ずつ npx qiita publish <basename> のほうが、間隔を空けやすかったです。
0016 も同じやり方で出す予定です(0015 の 12〜15分後 が目安)。
学んだこと
| やりがち | おすすめ |
|---|---|
| 締切日にまとめて push | 可能なら 前日までに何本か出す |
publish --all で一括反映 |
npx qiita publish <1本> で間隔を空ける |
| 失敗したらすぐ連打で Re-run | 12〜15分空けて 再試行 |
| Actions 失敗=記事が消えた |
public/ にあれば ローカルは OK。反映待ち |
drafts/ と public/ を分けているおかげで、記事ファイル自体は消えませんでした。
焦ったのは「ぬいぐるみに間に合うか」だけです (_・ω・)_バァン…
意識していること
- 量産の仕組み と API の投稿制限 は別問題
- レート制限は記事のバグではないので、まずログの
QiitaRateLimitErrorを見る - Tech Festa の締切(7/13 23:59)に近いほど、同じタイミングで投稿する人も増えそう
- ぬいぐるみ欲しさは否定しない。でも 連投は API に止められる と割り切る
次回からは「締切当日に全部出す」ではなく、バッファを1〜2本残す 運用にしたいです。
猫は待ってくれると信じたい。(=^・ェ・^=)
まとめ
- Qiita Tech Festa 2026 の猫ぬいぐるみ目当てで記事を量産していたら、締切日(7/13)に 新規10本 push して 10本目(0015) で Qiita API のレート制限に引っかかった
-
git pushは成功しても、Actions のqiita publish --allがQiitaRateLimitErrorで落ちることがある -
15分空けて
npx qiita publishで1本ずつ 出すと通った(0015 は 22:15 に投稿成功)
打算の塊が最後の関門で躓いたのは事実ですが、0015 は待って単体投稿で通りました(笑)
同じように Sprint 締切前に走っている方は、連投より 12〜15分間隔で1本ずつ 出すのを意識してみてください。
読んでくれてありがとうございました。m(_ _)m