Platform
iOS
Environment
Develop
Installed
Swift Package Manager
Other Error Monitoring Solution
No
Other Error Monitoring Solution Name
No response
Version
9.19.1
Xcode Version
26.3 (17C529)
Did it work on previous versions?
No response
Steps to Reproduce
This requires an organisation with exhausted quotas for any event category. The original report is from spans quota being exhausted, this test used the replays quota.
- Configure the SDK to send the exhausted category events to Sentry
- Configure User feedback using the feedback API: https://docs.sentry.io/platforms/apple/guides/ios/user-feedback/#user-feedback-api
import Sentry
let feedback = SentryFeedback(
message: "The settings screen is confusing.",
name: "Ada",
email: "ada@example.com",
source: .custom,
associatedEventId: nil,
attachments: nil
)
SentrySDK.capture(feedback: feedback)
- Have the SDK attempt to send an exhausted event to trigger a 429 response from the server
- Try to send a user feedback
Expected Result
The user feedback is sent to Sentry.
Actual Result
The user feedback is not sent by the SDK due to "ratelimit backoff".
The SDK logs show:
[Sentry] [debug] [1782989348.286313] [SentrySessionReplay:722] [Session Replay] Finished processing replay video with 1 segments
[Sentry] [debug] [1782989348.286588] [SentryFileManagerHelper:211] Writing envelope to path: [REDACTED]
[Sentry] [debug] [1782989348.287216] [SentryOnDemandReplay:157] [Session Replay] Releasing frames until date: 2026-07-02 10:49:08 +0000
[Sentry] [debug] [1782989348.287255] [SentryHttpTransport:296] sendAllCachedEnvelopes start.
[Sentry] [debug] [1782989348.2875051] [SentryOnDemandReplay:17] [Session Replay] Removed replay file at: [REDACTED]
[Sentry] [debug] [1782989348.287513] [SentryOnDemandReplay:173] [Session Replay] Frames released, remaining frames count: 0
[Sentry] [debug] [1782989348.287768] Constructed request: SentryURLRequestFactory
[Sentry] [debug] [1782989348.308693] [SentryRequestOperation:36] Request status: 429 <- Out of Replay quota.
....
[Sentry] [warning] [1782989361.318871] [SentryHttpTransport:250] Envelope item dropped due to exceeding rate limit. Category: feedback <- rate limit backoff triggered for User Feedback.
[Sentry] [warning] [1782989361.318886] [SentryHttpTransport:119] RateLimit is active for all envelope items. <- dropping all types of events.
The 429 response is the server rejecting the replay because the organisation is out of Replay quota. This triggers the SDK's "ratelimit backoff" logic to not send more replays, as they will be immediately rejected.
However, it is also blocking the user feedback, which does not use the same quota in Sentry.
Screenshots from the stats in Sentry:
Replay being rejected due to quota:

User feedback being rejected due to ratelimit backoff:

Are you willing to submit a PR?
No response
Platform
iOS
Environment
Develop
Installed
Swift Package Manager
Other Error Monitoring Solution
No
Other Error Monitoring Solution Name
No response
Version
9.19.1
Xcode Version
26.3 (17C529)
Did it work on previous versions?
No response
Steps to Reproduce
This requires an organisation with exhausted quotas for any event category. The original report is from spans quota being exhausted, this test used the replays quota.
Expected Result
The user feedback is sent to Sentry.
Actual Result
The user feedback is not sent by the SDK due to "ratelimit backoff".
The SDK logs show:
The 429 response is the server rejecting the replay because the organisation is out of Replay quota. This triggers the SDK's "ratelimit backoff" logic to not send more replays, as they will be immediately rejected.
However, it is also blocking the user feedback, which does not use the same quota in Sentry.
Screenshots from the stats in Sentry:

Replay being rejected due to quota:
User feedback being rejected due to ratelimit backoff:

Are you willing to submit a PR?
No response