Transient 502s: retry idempotent reads, distinguish rate limits, expose sending limits
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
調査の方向性
Start by tracing how the CLI handles errors for box, search, thread read, and draft show, then compare that with compose and auth status --json. Define the retry, rate-limit, server-error, Retry-After, and sending-limit behavior, including --no-retry and hey limits; done means these cases are distinguishable and documented without automatic compose retries.
索引モデルが issue の本文から書いたものです。
説明
Context
During bursts of CLI calls, read endpoints return API error: 502 Bad Gateway for a while, then recover on their own: hey box imbox, hey search, hey thread read. The same happens to compose. In the case we saw, reads recovered within minutes while compose kept failing much longer.
From the CLI there is no way to tell whether this is rate limiting, a quota on outbound mail, or a server problem. Every failure is the same generic api error.
No account-specific details below.
Ask
- Retry idempotent reads (box, search, thread read, draft show) automatically with backoff, a few times, before returning an error. A
--no-retryflag can turn it off. - Map responses to distinct error codes: 429 as
rate_limited, 5xx asserver_error. IncludeRetry-Afterin the JSON when the server sends it. - Document or expose sending limits (messages per hour or day, recipients per message) so batch tools can pace themselves instead of discovering a limit through errors. Something like
hey limits, or fields inhey auth status --json, would do. - Don't retry compose automatically (see the companion issue on compose 502s after a successful send). For compose, report the outcome clearly instead.
Why it matters
Agent and script workflows (reply checks, follow-ups, stop watchers) run unattended. Transient read errors turn into missed replies or false "no thread" results, and silent limits turn into partial batches.
- 主要言語
- Go
- スター
- 423
- フォーク
- 55
- 平均マージ
- 1日 3時間
- マージ済み PR(30日)
- 43
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートなし
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
basecamp/hey-cli のほかの issue
-
難易度 4/5 3〜5日 初心者へのやさしさ 48/100
basecamp/hey-cli#607 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
installer-canary
難易度 2/5 1〜3時間 初心者へのやさしさ 48/100
basecamp/hey-cli#601 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 3/5 1〜2日 初心者へのやさしさ 58/100
メンテナーはふだん 1 日以内に返信
-
難易度 4/5 3〜5日 初心者へのやさしさ 50/100
メンテナーはふだん 1 日以内に返信
-
Timed events show on their UTC day, not their local day, west of UTC対応中かも @armada877 が 23 日前に担当しました。 オープン
難易度 1/5 1時間未満 初心者へのやさしさ 10/100
メンテナーはふだん 1 日以内に返信
basecamp/hey-cli の issue をすべて見る
似ている issue
-
component:obi contribfest go test
難易度 2/5 1時間未満 初心者へのやさしさ 83/100
open-telemetry/opentelemetry-ebpf-instrumentation#4143 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
メンテナーはふだん 1 日以内に返信
-
area/ambient
難易度 2/5 1〜3時間 初心者へのやさしさ 74/100
メンテナーはふだん 1 日以内に返信
-
kind/cleanup
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
kubernetes-sigs/kueue#18324 ·
メンテナーはふだん 1 日以内に返信
-
enhancement
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100