You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Because clients can assume that client reports never get rate limited (develop docs), the Dart SDK continues to send an envelope with a client report even when the SDK is fully rate-limited and should drop all envelope items. Instead, the Dart SDK should only add the client report envelope item if the envelope has items to send.
The downside of this is that when the SDK is fully rate-limited for a long time or the user drops all events in beforeSend, the SDK may never send a client report. This can be addressed by checking in the HTTP transport if the ClientReports has more than x discarded events (I guess 10 is a good start), and then send an envelope with only the client report. This is related to getsentry/sentry-cocoa#4468.
The text was updated successfully, but these errors were encountered:
@philipphofmann This is only relevant for the http transport on the flutter side, right? Because when on iOS/Andorid, we don't rate limit on the flutter layer, but rather just send the envelope downstream to the native SDKs. In that case, we can't know if we should attach the client reports, right?
Description
The Dart SDK attaches the client report before applying the rate limit in the
client
.sentry-dart/dart/lib/src/sentry_client.dart
Lines 630 to 637 in 0880a97
In the
http_trasnport
, it then applies the rate limitsentry-dart/dart/lib/src/transport/http_transport.dart
Lines 37 to 42 in fe6dcac
Because clients can assume that client reports never get rate limited (develop docs), the Dart SDK continues to send an envelope with a client report even when the SDK is fully rate-limited and should drop all envelope items. Instead, the Dart SDK should only add the client report envelope item if the envelope has items to send.
The downside of this is that when the SDK is fully rate-limited for a long time or the user drops all events in beforeSend, the SDK may never send a client report. This can be addressed by checking in the HTTP transport if the ClientReports has more than x discarded events (I guess 10 is a good start), and then send an envelope with only the client report. This is related to getsentry/sentry-cocoa#4468.
The text was updated successfully, but these errors were encountered: