Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

HttpService retries rate-limited requests without honouring Retry-After

Đang mở
#7,629 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 1 ngày

Chưa có ai nhận issue này.

Đánh giá

Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức phù hợp với người mới
55/100
Loại issue
Lỗi
Độ rõ ràng
Khá rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
node.js, typescript
Lĩnh vực
backend, networking

Hướng nghiên cứu

Start by locating HttpService and its get, getJson and download retry loops, then read how the project configures got retries. Check the tests for these methods and run them to establish current retry behavior. Done means all three methods use one retry layer, respect Retry-After with a maximum wait, and back off when the header is absent.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

type:bug

Bug

HttpService retries a rate-limited request (429) right away, ignoring when the server says the next try is allowed.

get and getJson wrap got in their own three-attempt loop, and download does the same around got.stream. These loops retry right away, without any delay. When a server answers 429, or 503, with a Retry-After header, the retries land inside the blocked window, so they fail the same way and add more load to an already limited server.

got also retries internally, with its own defaults, and the two retry layers multiply. One call can send up to nine requests.

Expected

  • A 429 or 503 response with Retry-After delays the next attempt until that time, up to a sane maximum. If the wait would exceed the maximum, fail fast with the original error.
  • Without Retry-After, back off between attempts instead of retrying immediately.
  • One retry layer: either got's retry options (which honour Retry-After) or our loop, not both.
  • get, getJson and download behave the same.

Context

Found while making get/getJson fail fast on permanent 4xx errors (#7628). That change keeps retrying 408 and 429 but doesn't change their timing.


Opened by Claude Opus 5.5 in Claude Code on behalf of @viceice.

Ngôn ngữ chính
TypeScript
Star
58
Fork
65
Merge trung bình
11 giờ 31 phút
Pull request đã merge (30 ngày)
443

Chuẩn bị môi trường

Mở trong Codespaces

Khởi chạy dev container của dự án ngay trên trình duyệt, bằng tài khoản GitHub của bạn.

  • Có Dockerfile hoặc tệp Docker Compose
  • Không có mẫu pull request
  • Không có hướng dẫn đóng góp

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của containerbase/base

Tất cả issue của containerbase/base

Issue tương tự

Thêm issue về TypeScript

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.