Answer
The “Event dropped by rate limiter” warning is generated by the SDK’s own client‑side rate limiter, not by the network request. After a previous HTTP 429 response the SDK records a limit and subsequently drops matching envelopes locally until the limit expires.
Confirmed facts
- The warning originates from the SDK’s internal rate‑limiting logic.
- A 429 response may contain either a standard
Retry‑After header, a Sentry‑specific X‑Sentry‑Rate‑Limits header, or both.
- SDKs that understand
X‑Sentry‑Rate‑Limits treat Retry‑After as a fallback because the Sentry header can express per‑category and per‑scope limits.
- Older releases of some language bindings (e.g., Python < 0.18, early JavaScript SDKs) ignore
Retry‑After and apply a fixed or exponential back‑off after transport failures.
Likely explanation for the divergence
The differences stem from independent per‑language transport implementations and release timelines. Early SDKs predated the X‑Sentry‑Rate‑Limits header, so they relied on a generic back‑off strategy. When the Sentry‑specific header was added, newer bindings incorporated it while retaining Retry‑After parsing, but older branches were not updated, leaving them to ignore the standard header.
Steps to verify and align behavior
- Enable debug logging for the SDK (e.g.,
Sentry.init({ debug: true }) for JavaScript or logging.basicConfig(level=logging.DEBUG) for Python) and look for log lines that mention Retry‑After or X‑Sentry‑Rate‑Limits.
- Point the SDK at a test endpoint that returns HTTP 429 with a known
Retry‑After value (e.g., Retry-After: 5) and optionally an X‑Sentry‑Rate‑Limits header.
- Observe whether subsequent events are delayed for the advertised interval or dropped immediately.
- If the SDK ignores the header, check the installed version against the SDK’s changelog; upgrade to a release that includes header parsing (e.g., Python SDK ≥ 0.18, JavaScript SDK ≥ 7.0).
- After upgrading, repeat the test to confirm the limiter now respects
Retry‑After and drops events only until the expiry time.
Missing diagnostic detail
To give a precise upgrade recommendation, please specify the language binding and exact version of the Sentry SDK you are using (e.g., “sentry‑python 0.16.5” or “@sentry/browser 6.19.0”).