p-retry

Frameworks & Libraries

Retries a promise-returning function with exponential backoff.

Latest v8.0.0 · by Sindre SorhusWebsitesindresorhus/p-retry

Release activity

Release activity — 4 releases across 4 days in the last year. Each cell is one day; darker means more releases that day. Older weeks are hidden at this screen width.
MayJunJulAug
SundayNo releases on May 3, 2026No releases on May 10, 2026No releases on May 17, 2026No releases on May 24, 2026No releases on May 31, 2026No releases on Jun 7, 2026No releases on Jun 14, 2026No releases on Jun 21, 2026No releases on Jun 28, 2026No releases on Jul 5, 2026No releases on Jul 12, 2026No releases on Jul 19, 2026No releases on Jul 26, 2026No releases on Aug 2, 2026No releases on Aug 9, 2026No releases on Aug 16, 2026
MondayNo releases on May 4, 2026No releases on May 11, 2026No releases on May 18, 2026No releases on May 25, 2026No releases on Jun 1, 2026No releases on Jun 8, 2026No releases on Jun 15, 2026No releases on Jun 22, 2026No releases on Jun 29, 2026No releases on Jul 6, 2026No releases on Jul 13, 2026No releases on Jul 20, 2026No releases on Jul 27, 2026No releases on Aug 3, 2026No releases on Aug 10, 2026No releases on Aug 17, 2026
TuesdayNo releases on May 5, 2026No releases on May 12, 2026No releases on May 19, 2026No releases on May 26, 2026No releases on Jun 2, 2026No releases on Jun 9, 2026No releases on Jun 16, 2026No releases on Jun 23, 2026No releases on Jun 30, 2026No releases on Jul 7, 2026No releases on Jul 14, 2026No releases on Jul 21, 2026No releases on Jul 28, 2026No releases on Aug 4, 2026No releases on Aug 11, 2026No releases on Aug 18, 2026
WednesdayNo releases on May 6, 2026No releases on May 13, 2026No releases on May 20, 2026No releases on May 27, 2026No releases on Jun 3, 2026No releases on Jun 10, 2026No releases on Jun 17, 2026No releases on Jun 24, 2026No releases on Jul 1, 2026No releases on Jul 8, 2026No releases on Jul 15, 2026No releases on Jul 22, 2026No releases on Jul 29, 2026No releases on Aug 5, 2026No releases on Aug 12, 2026No releases on Aug 19, 2026
ThursdayNo releases on May 7, 2026No releases on May 14, 2026No releases on May 21, 2026No releases on May 28, 2026No releases on Jun 4, 2026No releases on Jun 11, 2026No releases on Jun 18, 2026No releases on Jun 25, 2026No releases on Jul 2, 2026No releases on Jul 9, 2026No releases on Jul 16, 2026No releases on Jul 23, 2026No releases on Jul 30, 2026No releases on Aug 6, 2026No releases on Aug 13, 2026
FridayNo releases on May 8, 2026No releases on May 15, 2026No releases on May 22, 2026No releases on May 29, 2026No releases on Jun 5, 2026No releases on Jun 12, 2026No releases on Jun 19, 2026No releases on Jun 26, 2026No releases on Jul 3, 2026No releases on Jul 10, 2026No releases on Jul 17, 2026No releases on Jul 24, 2026No releases on Jul 31, 2026No releases on Aug 7, 2026No releases on Aug 14, 2026
SaturdayNo releases on May 9, 2026No releases on May 16, 2026No releases on May 23, 2026No releases on May 30, 2026No releases on Jun 6, 2026No releases on Jun 13, 2026No releases on Jun 20, 2026No releases on Jun 27, 2026No releases on Jul 4, 2026No releases on Jul 11, 2026No releases on Jul 18, 2026No releases on Jul 25, 2026No releases on Aug 1, 2026No releases on Aug 8, 2026No releases on Aug 15, 2026

4 releases in the last year

Changelog

v8.0.0

Latest
Added 1
  • Add retryDelay to onFailedAttempt context
Changed 2
  • Change retry callback order from onFailedAttempt → shouldConsumeRetry → shouldRetry to shouldConsumeRetry → onFailedAttempt → shouldRetry
  • Harden retry timing and callback validation
Fixed 1
  • Fix TypeError retry handling
Removed 1
  • Drop support for Node.js versions below 22

From p-retry

Breaking
  • Require Node.js 22 85cdece
  • Change retry callback order 616306e
    • Callback order changed from onFailedAttemptshouldConsumeRetryshouldRetry to shouldConsumeRetryonFailedAttemptshouldRetry.
    • Consumption decisions are now made before failure notifications and retry decisions.
Improvements
  • Add retryDelay to onFailedAttempt context (#66) 96cce98
  • Fix TypeError retry handling f011d2e
  • Harden retry timing and callback validation 9d47b60

https://github.com/sindresorhus/p-retry/compare/v7.1.1...v8.0.0

View originalPermalink
How v8.0.0 went

v7.0.0

Added 1
  • Add makeRetriable method
Changed 2
  • onFailedAttempt and shouldRetry now receive a context object instead of a decorated error, with the error accessible as context.error
  • Rewrite the package to not depend on the retry package
Removed 2
  • Require Node.js 20 or later
  • Remove the forever option, use {retries: Infinity} instead for infinite retries

From p-retry

Breaking
  • Require Node.js 20 3bdb53a
  • onFailedAttempt and shouldRetry now receive a context object instead of a decorated error bff36bb
    • You must now must access the error as object.error instead of object.
    • The use of .attemptNumber and .retriesLeft did not change.
  • Remove the forever option (#79) 6a89827
    • Many use-cases can use {retries: Infinity} instead for infinite retries.
Improvements
  • Rewrite the package to not depend on the retry package (#79) 6a89827
    • This is a full rewrite, so test carefully.
  • Add makeRetriable method 1a81c1e

https://github.com/sindresorhus/p-retry/compare/v6.2.1...v7.0.0

View originalPermalink
How v7.0.0 went

v7.0.0-0

Pre-release
Added 1
  • Add makeRetriable method
Changed 2
  • onFailedAttempt and shouldRetry now receive a context object instead of a decorated error, with error accessible as object.error
  • Rewrite the package to not depend on the retry package
Removed 2
  • Require Node.js 20
  • Remove the forever option

From p-retry

Breaking
  • Require Node.js 20 3bdb53a
  • onFailedAttempt and shouldRetry now receive a context object instead of a decorated error bff36bb
    • You must now must access the error as object.error instead of object.
    • The use of .attemptNumber and .retriesLeft did not change.
  • Remove the forever option (#79) 6a89827
    • Many use-cases can use {retries: Infinity} instead for infinite retries.
Improvements
  • Rewrite the package to not depend on the retry package (#79) 6a89827
    • This is a full rewrite, so test carefully.
  • Add makeRetriable method 1a81c1e

https://github.com/sindresorhus/p-retry/compare/v6.2.1...v7.0.0-0

View originalPermalink
How v7.0.0-0 went
View all

Discussion

If you publish p-retry, you can claim this product by proving you administer its repository.