Skip to content

Exceptions not showing in Issues when Transactions are rate limited #3947

Description

@MichaelLHerman

Package

Sentry

.NET Flavor

.NET

.NET Version

9.0.100

OS

iOS

SDK Version

5.1.0

Self-Hosted Sentry Version

No response

Steps to Reproduce

Connect to sentry using an api key that has exceeded its transaction limit

Log an exception

            try
            {
                throw new InvalidOperationException("whoops2");
            }
            catch (Exception ex)
            {
                Sentry.SentrySdk.CaptureException(ex);
            }

Expected Result

Errors should still show in Sentry since they have a different limit

Actual Result

Nothing shows up in Sentry. I think this was working when I had GlobalMode off. Either that or it was working in 4.10.1?
I had removed this because I thought recent changes in v5 had fixed my issues with global mode

        builder.Services.PostConfigure((SentryMauiOptions options) =>
        {
            //need to manually set here because it's overridden by Configure
            options.IsGlobalModeEnabled = false;
        });

Completely fed up with this because the Issues list doesn't show error immediately
https://sentry.io/issues/?environment=RC&environment=debug&query=&referrer=issue-list&statsPeriod=24h&stream_index=0

Need to change the time range to a different value and then back for issues to show up.
Having a horrible experience here, going to look for another alternative to Sentry.

Logs:

Debug: No cached file to process.
Info: Capturing event.
Debug: Running processor on exception: whoops2
Debug: Creating SentryStackTrace. isCurrentStackTrace: False.
Debug: Got debug image for 'CadabraMobile.dll' having Debug ID: 821145f8-9b14-4606-a3ec-94d56ac86bf0-e6b42420
Debug: Created DebugStackTrace with 1 frames.
Debug: Running main event processor on: Event c60318be8549418a97d97c2acb630480
Debug: Merging 1 debug images from stacktrace.
Debug: Event not sampled.
Debug: Enqueuing envelope c60318be8549418a97d97c2acb630480
Info: Envelope queued up: 'c60318be8549418a97d97c2acb630480'
Debug: Storing file /Users/mikeherman/Library/Developer/CoreSimulator/Devices/E1B7745A-F47B-468C-9098-652D17586098/data/Containers/Data/Application/7B9C33F7-B673-4EC6-A95C-8C7A7CC52FB1/Library/Caches/Sentry/FF490A2D9A738DBC0B39B47D3C5F1CCCE05E6897/1738961529_1003_c60318be8549418a97d97c2acb630480_297114243.envelope.
Debug: Attempting to finish Transaction deb481e67b6d6029.
Debug: Finished Transaction deb481e67b6d6029.
Info: Capturing transaction.
Debug: Envelope handed off to transport (event ID: 'c60318be8549418a97d97c2acb630480'). 1 items in queue.
Debug: Enqueuing envelope 300e01729c044352836be11ca7706a95
Info: Envelope queued up: '300e01729c044352836be11ca7706a95'
Debug: CachingTransport worker signal triggered.
Debug: De-queueing event c60318be8549418a97d97c2acb630480
Debug: Flushing cached envelopes.
Debug: Storing file /Users/mikeherman/Library/Developer/CoreSimulator/Devices/E1B7745A-F47B-468C-9098-652D17586098/data/Containers/Data/Application/7B9C33F7-B673-4EC6-A95C-8C7A7CC52FB1/Library/Caches/Sentry/FF490A2D9A738DBC0B39B47D3C5F1CCCE05E6897/1738961529_-6814_300e01729c044352836be11ca7706a95_1270322123.envelope.
Debug: Envelope handed off to transport (event ID: '300e01729c044352836be11ca7706a95'). 1 items in queue.
Debug: Reading cached envelope: /Users/mikeherman/Library/Developer/CoreSimulator/Devices/E1B7745A-F47B-468C-9098-652D17586098/data/Containers/Data/Application/7B9C33F7-B673-4EC6-A95C-8C7A7CC52FB1/Library/Caches/Sentry/FF490A2D9A738DBC0B39B47D3C5F1CCCE05E6897/__processing/1738961529_1003_c60318be8549418a97d97c2acb630480_297114243.envelope
Debug: De-queueing event 300e01729c044352836be11ca7706a95
Debug: Sending cached envelope: c60318be8549418a97d97c2acb630480
Error: HttpTransport: Sentry rejected the envelope 'c60318be8549418a97d97c2acb630480'. Status code: TooManyRequests. Error detail: .
Debug: HttpTransport: Failed envelope 'c60318be8549418a97d97c2acb630480' has payload: {"sdk":{"name":"sentry.dotnet","version":"5.1.0"},"event_id":"c60318be8549418a97d97c2acb630480","trace":{"trace_id":"588be66ffed64b32b021a6f467c5f23c","public_key":"e4c492770536f8d570f2562a10f6113e","sampled":"true","sample_rate":"1","release":"com.acumenmd.cadabra.local@0.0.0\u002B0","environment":"debug","transaction":"HomeViewModel.GoToHelp"},"sent_at":"2025-02-07T20:52:09.748376+00:00"} {"type":"event","length":24539} {"modules":{"System.Private.CoreLib":"9.0.0.0","Microsoft.iOS":"18.2.0.0","System.Runtime":"9.0.0.0","System.Collections":"9.0.0.0","System.Runtime.InteropServices":"9.0.0.0","System.Threading.Thread":"9.0.0.0","System.Threading":"9.0.0.0","CadabraMobile":"1.0.0.0","Microsoft.Maui.Controls":"1.0.0.0","System.ObjectModel":"9.0.0.0","Microsoft.Maui":"1.0.0.0","IdentityModel.OidcClient":"6.0.0.0","Syncfusion.Maui.DataSource":"27.2.5.0","Syncfusion.Maui.Popup":"27.2.5.0","Syncfusion.Maui.Core":"27.2.5.0","Microsoft.Maui.Graphics":"1.0.0.0","CommunityToolkit.Mvvm":"8.4.0.0","Realm":"11.7.0.0","CadabraMobile.ApiClient":"1.0.0.0","CadabraMobile.Logging":"1.0.0.0","Syncfusion.Maui.Inputs":"27.2.5.0","System.ComponentModel.TypeConverter":"9.0.0.0","Syncfusion.Maui.ListView":"27.2.5.0","Newtonsoft.Json":"13.0.0.0","Microsoft.Maui.Controls.Xaml":"1.0.0.0","System.Net.Http":"9.0.0.0","System.Net.Primitives":"9.0.0.0","System.ComponentModel":"9.0.0.0","System.Private.Uri":"9.0.0.0","System.Collections.Concurrent":"9.0.0.0","System.Numerics.Vectors":"9.0.0.0","System.Xml.ReaderWriter":"9.0.0.0","System.Private.Xml":"9.0.0.0","System.Memory":"9.0.0.0","System.Diagnostics.TraceSource":"9.0.0.0","System.Collections.NonGeneric":"9.0.0.0","System.Collections.Specialized":"9.0.0.0","System.ComponentModel.Primitives":"9.0.0.0","System.Text.RegularExpressions":"9.0.0.0","System.Reflection.Emit.ILGeneration":"9.0.0.0","System.Reflection.Emit.Lightweight":"9.0.0.0","System.Reflection.Primitives":"9.0.0.0","System.Diagnostics.Tracing":"9.0.0.0","System.Runtime.Intrinsics":"9.0.0.0","Microsoft.Win32.Primitives":"9.0.0.0","System.Net.Security":"9.0.0.0","System.Security.Cryptography":"9.0.0.0","System.Formats.Asn1":"9.0.0.0","System.Text.Encoding.Extensions":"9.0.0.0","System.Runtime.Numerics":"9.0.0.0","System.IO.MemoryMappedFiles":"9.0.0.0","System.Security.Claims":"9.0.0.0","System.Net.Sockets":"9.0.0.0","System.Diagnostics.DiagnosticSource":"9.0.0.0","System.Threading.ThreadPool":"9.0.0.0","System.Net.NameResolution":"9.0.0.0","System.Linq":"9.0.0.0","System.Net.Quic":"9.0.0.0","System.IO.Compression":"9.0.0.0","System.IO.Compression.Brotli":"9.0.0.0","System.Threading.Channels":"9.0.0.0","System.Net.NetworkInformation":"9.0.0.0","System.Reflection.Emit":"9.0.0.0","System.Reflection.Metadata":"9.0.0.0","System.Collections.Immutable":"9.0.0.0","System.Runtime.Loader":"9.0.0.0","System.Linq.Expressions":"9.0.0.0","System.Drawing.Primitives":"9.0.0.0","System.Runtime.Serialization.Formatters":"8.1.0.0","System.Resources.Writer":"9.0.0.0","System.Xml.XDocument":"9.0.0.0","System.Private.Xml.Linq":"9.0.0.0","Microsoft.Maui.Essentials":"1.0.0.0","System.Console":"9.0.0.0","System.Text.Json":"9.0.0.0","System.IO.Pipelines":"9.0.0.0","System.Text.Encodings.Web":"9.0.0.0","Microsoft.Extensions.Logging.Abstractions":"9.0.0.0","Microsoft.Extensions.DependencyInjection.Abstractions":"9.0.0.0","Microsoft.Extensions.Configuration.Abstractions":"9.0.0.0","Microsoft.Extensions.Primitives":"9.0.0.0","Microsoft.Extensions.Configuration":"9.0.0.0","Microsoft.Extensions.DependencyInjection":"9.0.0.0","Microsoft.Extensions.Logging":"9.0.0.0","Microsoft.Extensions.Options":"9.0.0.0","System.ComponentModel.Annotations":"9.0.0.0","System.Web.HttpUtility":"9.0.0.0","AspectInjector.Broker":"2.8.1.0","netstandard":"2.1.0.0","System.IO.Pipes":"9.0.0.0","System.Diagnostics.Process":"9.0.0.0","System.Diagnostics.FileVersionInfo":"9.0.0.0","System.ComponentModel.EventBasedAsync":"9.0.0.0","System.Data.Common":"9.0.0.0","System.Xml.XmlSerializer":"9.0.0.0","System.Transactions.Local":"9.0.0.0","System.Diagnostics.Contracts":"9.0.0.0","System.Diagnostics.TextWriterTraceListener":"9.0.0.0","System.Diagnostics.StackTrace":"9.0.0.0","System.IO.Compression.ZipFile":"9.0.0.0","System.IO.FileSystem.DriveInfo":"9.0.0.0","System.IO.FileSystem.Watcher":"9.0.0.0","System.IO.IsolatedStorage":"9.0.0.0","System.Linq.Queryable":"9.0.0.0","System.Linq.Parallel":"9.0.0.0","System.Net.Requests":"9.0.0.0","System.Net.WebHeaderCollection":"9.0.0.0","System.Net.HttpListener":"9.0.0.0","System.Net.WebSockets":"9.0.0.0","System.Security.Principal.Windows":"9.0.0.0","System.Net.WebClient":"9.0.0.0","System.Net.WebProxy":"9.0.0.0","System.Net.Mail":"9.0.0.0","System.Net.Ping":"9.0.0.0","System.Net.WebSockets.Client":"9.0.0.0","System.Reflection.DispatchProxy":"9.0.0.0","System.Runtime.CompilerServices.VisualC":"9.0.0.0","System.Runtime.Serialization.Primitives":"9.0.0.0","System.Runtime.Serialization.Xml":"9.0.0.0","System.Private.DataContractSerialization":"9.0.0.0","System.Runtime.Serialization.Json":"9.0.0.0","System.Threading.Overlapped":"9.0.0.0","System.Threading.Tasks.Parallel":"9.0.0.0","System.Xml.XPath.XDocument":"9.0.0.0","System.Xml.XPath":"9.0.0.0","Sentry":"5.1.0.0","Sentry.Bindings.Cocoa":"5.1.0.0","MongoDB.Bson":"2.19.1.0","System.Runtime.CompilerServices.Unsafe":"9.0.0.0","Microsoft.Maui.Controls.Compatibility":"1.0.0.0","Sentry.Maui":"5.1.0.0","Microsoft.Extensions.Configuration.Binder":"9.0.0.0","Sentry.Extensions.Logging":"5.1.0.0","Microsoft.Extensions.Http":"9.0.0.0","Microsoft.Extensions.Diagnostics":"9.0.0.0","Microsoft.Extensions.Diagnostics.Abstractions":"9.0.0.0","Microsoft.Extensions.Options.ConfigurationExtensions":"9.0.0.0","Microsoft.Extensions.Logging.Configuration":"9.0.0.0","IdentityModel":"7.0.0.0","System.Security.Cryptography.Algorithms":"9.0.0.0","System.Security.Cryptography.X509Certificates":"9.0.0.0","System.Security.Cryptography.Primitives":"9.0.0.0","Syncfusion.Maui.GridCommon":"27.2.5.0","Syncfusion.Licensing":"27.2.5.0","Syncfusion.Maui.DataGrid":"27.2.5.0","Syncfusion.Maui.Data":"27.2.5.0","Syncfusion.Maui.PullToRefresh":"27.2.5.0","Remotion.Linq":"2.2.0.0","System.Diagnostics.Debug":"9.0.0.0","System.Reflection":"9.0.0.0","System.Reflection.Extensions":"9.0.0.0","System.Runtime.Extensions":"9.0.0.0","Realm.PlatformHelpers":"11.7.0.0","Maui.Biometric":"2.0.0.0","System.Reactive":"6.0.0.0","NativeMedia":"2.2.1.0","NativeMedia.Permision.Maui":"2.2.1.0","Mopups":"1.3.1.0","AsyncAwaitBestPractices":"6.0.4.0","CadabraMobile.Amplitude.iOS.Binding":"1.0.0.0","Bogus":"31.0.3.0","AutoBogus":"2.13.1.0","System.Data.DataSetExtensions":"9.0.0.0","CommunityToolkit.Maui":"10.0.0.0","CommunityToolkit.Maui.Core":"10.0.0.0","CommunityToolkit.Maui.Markup":"1.0.0.0","Microsoft.Extensions.Logging.Debug":"9.0.0.0","Mono.DebuggingHelp":"777.0.0.0","mscorlib":"4.0.0.0","System":"4.0.0.0","JetBrains.Lifetimes":"777.0.0.0","JetBrains.RdFramework":"777.0.0.0","JetBrains.HotReloadAgent.Core":"777.0.0.0","JetBrains.HotReloadAgent.Maui":"777.0.0.0","System.Core":"4.0.0.0"},"event_id":"c60318be8549418a97d97c2acb630480","timestamp":"2025-02-07T20:52:09.656741+00:00","platform":"csharp","release":"com.acumenmd.cadabra.local@0.0.0\u002B0","dist":"0","exception":{"values":[{"type":"System.InvalidOperationException","value":"whoops2","module":"System.Private.CoreLib, Version=9.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e","thread_id":1,"stacktrace":{"frames":[{"filename":"ViewModels/HomeViewModel.cs","function":"async Task HomeViewModel.GoToHelp()","lineno":214,"colno":17,"abs_path":"/Users/mikeherman/Repos/Acumen.Cadabra.Mobile/CadabraMobile/ViewModels/HomeViewModel.cs","in_app":true,"package":"CadabraMobile, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null","instruction_addr":"0xf","addr_mode":"rel:0","function_id":"0xc28"}]},"mechanism":{"type":"generic","handled":true}}]},"level":"error","transaction":"HomeViewModel.GoToHelp","request":{},"contexts":{"Additional Device Info":{"TextSize":"UICTContentSizeCategoryL","BoldText":"False","DarkMode":"Light","VoiceOver":"False"},"Current Culture":{"name":"en","display_name":"English","calendar":"GregorianCalendar"},"Dynamic Code":{"Compiled":false,"Supported":true},"Memory Info":{"allocated_bytes":646338352,"fragmented_bytes":4780928,"heap_size_bytes":42483712,"high_memory_load_threshold_bytes":34789235097,"total_available_memory_bytes":38654705664,"memory_load_bytes":38485655552,"total_committed_bytes":37702784,"finalization_pending_count":0,"compacted":false,"concurrent":false,"pause_durations":[0,0]},"ThreadPool Info":{"min_worker_threads":14,"min_completion_port_threads":1,"max_worker_threads":32767,"max_completion_port_threads":1000,"available_worker_threads":32766,"available_completion_port_threads":1000},"app":{"type":"app","app_identifier":"com.acumenmd.cadabra.local","app_start_time":"2025-02-07T20:51:28.235272+00:00","device_app_hash":"9f61bd1085c066f89c66d60b5e06475f97466dde","build_type":"simulator","app_name":"AcumenRounder","app_version":"0.0.0","app_build":"0","in_foreground":true},"device":{"type":"device","timezone":"America/New_York","timezone_display_name":"(UTC-05:00) America/New_York","name":"iPhone 16","manufacturer":"Apple","family":"iOS","model":"arm64","model_id":"simulator","arch":"Arm64","online":true,"orientation":"portrait","simulator":true,"memory_size":38654705664,"free_memory":143376384,"usable_memory":24089214976,"screen_resolution":"1179x2556","screen_density":3,"boot_time":"2025-02-06T12:36:16.5276013+00:00","device_type":"Phone","battery_status":"Unknown","supports_vibration":true,"supports_accelerometer":false,"supports_gyroscope":false},"os":{"type":"os","name":"iOS","version":"18.2","raw_description":"Darwin 24.3.0 Darwin Kernel Version 24.3.0: Thu Jan 2 20:24:23 PST 2025; root:xnu-11215.81.43/RELEASE_ARM64_T6031","build":"24D60","kernel_version":"Darwin Kernel Version 24.3.0: Thu Jan 2 20:24:23 PST 2025; root:xnu-11215.81.43/RELEASE_ARM64_T6031","rooted":false},"runtime":{"type":"runtime","name":".NET","version":"9.0.0","raw_description":".NET 9.0.0","identifier":"iossimulator-arm64"},"trace":{"type":"trace","span_id":"deb481e67b6d6029","trace_id":"588be66ffed64b32b021a6f467c5f23c","origin":"manual"}},"user":{"id":"e3124e8c-758a-4cf7-bb63-4012b72f8fd4","username":"ACUMHER","other":{"ServiceArea":"APSGHNSA"}},"environment":"debug","sdk":{"packages":[{"name":"nuget:Sentry.Extensions.Logging","version":"5.1.0"},{"name":"nuget:sentry.dotnet","version":"5.1.0"}],"name":"sentry.dotnet.maui","version":"5.1.0"},"breadcrumbs":[{"timestamp":"2025-02-07T20:51:30.194Z","message":"App.PageDisappearing","type":"navigation","data":{"Page":"SecurityCoverPage","Page.Name":"This"},"category":"navigation"},{"timestamp":"2025-02-07T20:51:30.279Z","message":"App.PageAppearing","type":"navigation","data":{"Page":"SecurityCoverPage","Page.Name":"This"},"category":"navigation"},{"timestamp":"2025-02-07T20:51:30.282Z","message":"LoginShell.Appearing","type":"system","category":"ui.lifecycle"},{"timestamp":"2025-02-07T20:51:30.282Z","message":"App.PageAppearing","type":"navigation","data":{"Page":"LoginShell"},"category":"navigation"},{"timestamp":"2025-02-07T20:51:30.512Z","type":"http","data":{"url":"https://rounder-api.acumenmd.com/api/composite/general/GetEnabledFeatureFlags","method":"GET","status_code":"200"},"category":"http"},{"timestamp":"2025-02-07T20:51:30.687Z","type":"http","data":{"url":"https://rounder-api.acumenmd.com/api/Mobile/MinimumVersion","method":"GET","status_code":"200"},"category":"http"},{"timestamp":"2025-02-07T20:51:30.866Z","message":"Style TargetType Microsoft.Maui.Controls.Label is not compatible with element target type CadabraMobile.CustomControls.EntryWithMoveNextControl","category":"Microsoft.Maui.Controls.Style","level":"warning"},{"timestamp":"2025-02-07T20:51:30.928Z","message":"Style TargetType Microsoft.Maui.Controls.Label is not compatible with element target type CadabraMobile.CustomControls.EntryWithMoveNextControl","category":"Microsoft.Maui.Controls.Style","level":"warning"},{"timestamp":"2025-02-07T20:51:30.977Z","message":"Style TargetType Microsoft.Maui.Controls.Label is not compatible with element target type CadabraMobile.CustomControls.EntryWithMoveNextControl","category":"Microsoft.Maui.Controls.Style","level":"warning"},{"timestamp":"2025-02-07T20:51:31.179Z","message":"LoginShell.Navigating","type":"navigation","data":{"from":"//IMPL_D_FAULT_SecurityCoverPage2","to":"D_FAULT_SecurityLoginPage6","Source":"Push"},"category":"navigation"},{"timestamp":"2025-02-07T20:51:31.181Z","message":"SecurityCoverPage.Disappearing","type":"system","data":{"SecurityCoverPage.Name":"This"},"category":"ui.lifecycle"},{"timestamp":"2025-02-07T20:51:31.182Z","message":"App.PageDisappearing","type":"navigation","data":{"Page":"SecurityCoverPage","Page.Name":"This"},"category":"navigation"},{"timestamp":"2025-02-07T20:51:31.300Z","message":"App.PageAppearing","type":"navigation","data":{"Page":"SecurityLoginPage","Page.Name":"This"},"category":"navigation"},{"timestamp":"2025-02-07T20:51:31.490Z","message":"LoginShell.Navigated","type":"navigation","data":{"from":"//IMPL_D_FAULT_SecurityCoverPage2","to":"//IMPL_D_FAULT_SecurityCoverPage2/D_FAULT_SecurityLoginPage6","Source":"Push"},"category":"navigation"},{"timestamp":"2025-02-07T20:51:31.491Z","message":"SecurityLoginPage.NavigatedTo","type":"navigation","data":{"SecurityLoginPage.Name":"This","PreviousPage":"SecurityCoverPage","PreviousPage.Name":"This"},"category":"navigation"},{"timestamp":"2025-02-07T20:51:55.586Z","message":"EntryWithMoveNextControl.Focused","type":"system","data":{"EntryWithMoveNextControl.Name":"Entry"},"category":"ui.rendering"},{"timestamp":"2025-02-07T20:51:58.623Z","message":"Button.Pressed","type":"user","category":"ui.useraction"},{"timestamp":"2025-02-07T20:51:58.626Z","message":"Button.Released","type":"user","category":"ui.useraction"},{"timestamp":"2025-02-07T20:51:58.781Z","type":"http","data":{"url":"https://rounder-api.acumenmd.com/api/composite/general/getuserdetails","method":"GET","status_code":"200"},"category":"http"},{"timestamp":"2025-02-07T20:51:59.037Z","message":"Value is an invalid value for CornerRadius","category":"Microsoft.Maui.Controls.BindableObject","level":"warning"},{"timestamp":"2025-02-07T20:51:59.123Z","message":"Value is an invalid value for CornerRadius","category":"Microsoft.Maui.Controls.BindableObject","level":"warning"},{"timestamp":"2025-02-07T20:51:59.195Z","message":"Value is an invalid value for CornerRadius","category":"Microsoft.Maui.Controls.BindableObject","level":"warning"},{"timestamp":"2025-02-07T20:51:59.267Z","message":"Value is an invalid value for CornerRadius","category":"Microsoft.Maui.Controls.BindableObject","level":"warning"},{"timestamp":"2025-02-07T20:51:59.340Z","message":"Value is an invalid value for CornerRadius","category":"Microsoft.Maui.Controls.BindableObject","level":"warning"},{"timestamp":"2025-02-07T20:51:59.451Z","type":"http","data":{"url":"https://rounder-api.acumenmd.com/api/provider","method":"GET","status_code":"200"},"category":"http"},{"timestamp":"2025-02-07T20:51:59.519Z","message":"Value is an invalid value for CornerRadius","category":"Microsoft.Maui.Controls.BindableObject","level":"warning"},{"timestamp":"2025-02-07T20:51:59.521Z","message":"Value is an invalid value for CornerRadius","category":"Microsoft.Maui.Controls.BindableObject","level":"warning"},{"timestamp":"2025-02-07T20:51:59.539Z","message":"Value is an invalid value for CornerRadius","category":"Microsoft.Maui.Controls.BindableObject","level":"warning"},{"timestamp":"2025-02-07T20:51:59.541Z","message":"Value is an invalid value for CornerRadius","category":"Microsoft.Maui.Controls.BindableObject","level":"warning"},{"timestamp":"2025-02-07T20:51:59.544Z","message":"Value is an invalid value for CornerRadius","category":"Microsoft.Maui.Controls.BindableObject","level":"warning"},{"timestamp":"2025-02-07T20:51:59.555Z","message":"SecurityLoginPage.Disappearing","type":"system","data":{"SecurityLoginPage.Name":"This"},"category":"ui.lifecycle"},{"timestamp":"2025-02-07T20:51:59.555Z","message":"App.PageDisappearing","type":"navigation","data":{"Page":"SecurityLoginPage","Page.Name":"This"},"category":"navigation"},{"timestamp":"2025-02-07T20:51:59.556Z","message":"LoginShell.Disappearing","type":"system","category":"ui.lifecycle"},{"timestamp":"2025-02-07T20:51:59.556Z","message":"App.PageDisappearing","type":"navigation","data":{"Page":"LoginShell"},"category":"navigation"},{"timestamp":"2025-02-07T20:51:59.584Z","message":"EntryWithMoveNextControl.Unfocused","type":"system","data":{"EntryWithMoveNextControl.Name":"Entry"},"category":"ui.rendering"},{"timestamp":"2025-02-07T20:51:59.651Z","message":"App.PageAppearing","type":"navigation","data":{"Page":"HomePage","Page.Name":"This"},"category":"navigation"},{"timestamp":"2025-02-07T20:51:59.662Z","message":"AppShell.Appearing","type":"system","category":"ui.lifecycle"},{"timestamp":"2025-02-07T20:51:59.662Z","message":"App.PageAppearing","type":"navigation","data":{"Page":"AppShell"},"category":"navigation"},{"timestamp":"2025-02-07T20:52:00.017Z","message":"HomePage.Disappearing","type":"system","data":{"HomePage.Name":"This"},"category":"ui.lifecycle"},{"timestamp":"2025-02-07T20:52:00.018Z","message":"App.PageDisappearing","type":"navigation","data":{"Page":"HomePage","Page.Name":"This"},"category":"navigation"},{"timestamp":"2025-02-07T20:52:00.018Z","message":"AppShell.Disappearing","type":"system","category":"ui.lifecycle"},{"timestamp":"2025-02-07T20:52:00.019Z","message":"App.PageDisappearing","type":"navigation","data":{"Page":"AppShell"},"category":"navigation"},{"timestamp":"2025-02-07T20:52:00.046Z","message":"App.PageAppearing","type":"navigation","data":{"Page":"SecurityCoverPage","Page.Name":"This"},"category":"navigation"},{"timestamp":"2025-02-07T20:52:00.048Z","message":"LoginShell.Appearing","type":"system","category":"ui.lifecycle"},{"timestamp":"2025-02-07T20:52:00.048Z","message":"App.PageAppearing","type":"navigation","data":{"Page":"LoginShell"},"category":"navigation"},{"timestamp":"2025-02-07T20:52:00.132Z","message":"Style TargetType Microsoft.Maui.Controls.Label is not compatible with element target type CadabraMobile.CustomControls.EntryWithMoveNextControl","category":"Microsoft.Maui.Controls.Style","level":"warning"},{"timestamp":"2025-02-07T20:52:00.189Z","message":"Style TargetType Microsoft.Maui.Controls.Label is not compatible with element target type CadabraMobile.CustomControls.EntryWithMoveNextControl","category":"Microsoft.Maui.Controls.Style","level":"warning"},{"timestamp":"2025-02-07T20:52:00.242Z","message":"Style TargetType Microsoft.Maui.Controls.Label is not compatible with element target type CadabraMobile.CustomControls.EntryWithMoveNextControl","category":"Microsoft.Maui.Controls.Style","level":"warning"},{"timestamp":"2025-02-07T20:52:00.345Z","type":"http","data":{"url":"https://rounder-api.acumenmd.com/api/servicearea/location/serviceareaid/20","method":"GET","status_code":"200"},"category":"http"},{"timestamp":"2025-02-07T20:52:00.441Z","message":"LoginShell.Navigating","type":"navigation","data":{"from":"//IMPL_D_FAULT_SecurityCoverPage13","to":"D_FAULT_SecurityLoginPage17","Source":"Push"},"category":"navigation"},{"timestamp":"2025-02-07T20:52:00.442Z","message":"SecurityCoverPage.Disappearing","type":"system","data":{"SecurityCoverPage.Name":"This"},"category":"ui.lifecycle"},{"timestamp":"2025-02-07T20:52:00.443Z","message":"App.PageDisappearing","type":"navigation","data":{"Page":"SecurityCoverPage","Page.Name":"This"},"category":"navigation"},{"timestamp":"2025-02-07T20:52:00.515Z","message":"App.PageAppearing","type":"navigation","data":{"Page":"SecurityLoginPage","Page.Name":"This"},"category":"navigation"},{"timestamp":"2025-02-07T20:52:00.653Z","message":"LoginShell.Navigated","type":"navigation","data":{"from":"//IMPL_D_FAULT_SecurityCoverPage13","to":"//IMPL_D_FAULT_SecurityCoverPage13/D_FAULT_SecurityLoginPage17","Source":"Push"},"category":"navigation"},{"timestamp":"2025-02-07T20:52:00.654Z","message":"SecurityLoginPage.NavigatedTo","type":"navigation","data":{"SecurityLoginPage.Name":"This","PreviousPage":"SecurityCoverPage","PreviousPage.Name":"This"},"category":"navigation"},{"timestamp":"2025-02-07T20:52:00.782Z","type":"http","data":{"url":"https://rounder-api.acumenmd.com/api/custom-tag/GetCustomTagList","method":"GET","status_code":"200"},"category":"http"},{"timestamp":"2025-02-07T20:52:01.017Z","message":"Value is an invalid value for CornerRadius","category":"Microsoft.Maui.Controls.BindableObject","level":"warning"},{"timestamp":"2025-02-07T20:52:01.084Z","type":"http","data":{"url":"https://rounder-api.acumenmd.com/api/usersetting/getusersettings","method":"POST","status_code":"200"},"category":"http"},{"timestamp":"2025-02-07T20:52:01.095Z","message":"Value is an invalid value for CornerRadius","category":"Microsoft.Maui.Controls.BindableObject","level":"warning"},{"timestamp":"2025-02-07T20:52:01.177Z","message":"Value is an invalid value for CornerRadius","category":"Microsoft.Maui.Controls.BindableObject","level":"warning"},{"timestamp":"2025-02-07T20:52:01.259Z","message":"Value is an invalid value for CornerRadius","category":"Microsoft.Maui.Controls.BindableObject","level":"warning"},{"timestamp":"2025-02-07T20:52:01.353Z","message":"Value is an invalid value for CornerRadius","category":"Microsoft.Maui.Controls.BindableObject","level":"warning"},{"timestamp":"2025-02-07T20:52:01.543Z","message":"Value is an invalid value for CornerRadius","category":"Microsoft.Maui.Controls.BindableObject","level":"warning"},{"timestamp":"2025-02-07T20:52:01.545Z","message":"Value is an invalid value for CornerRadius","category":"Microsoft.Maui.Controls.BindableObject","level":"warning"},{"timestamp":"2025-02-07T20:52:01.561Z","message":"Value is an invalid value for CornerRadius","category":"Microsoft.Maui.Controls.BindableObject","level":"warning"},{"timestamp":"2025-02-07T20:52:01.564Z","message":"Value is an invalid value for CornerRadius","category":"Microsoft.Maui.Controls.BindableObject","level":"warning"},{"timestamp":"2025-02-07T20:52:01.566Z","message":"Value is an invalid value for CornerRadius","category":"Microsoft.Maui.Controls.BindableObject","level":"warning"},{"timestamp":"2025-02-07T20:52:01.575Z","message":"SecurityLoginPage.Disappearing","type":"system","data":{"SecurityLoginPage.Name":"This"},"category":"ui.lifecycle"},{"timestamp":"2025-02-07T20:52:01.576Z","message":"App.PageDisappearing","type":"navigation","data":{"Page":"SecurityLoginPage","Page.Name":"This"},"category":"navigation"},{"timestamp":"2025-02-07T20:52:01.577Z","message":"LoginShell.Disappearing","type":"system","category":"ui.lifecycle"},{"timestamp":"2025-02-07T20:52:01.577Z","message":"App.PageDisappearing","type":"navigation","data":{"Page":"LoginShell"},"category":"navigation"},{"timestamp":"2025-02-07T20:52:01.636Z","message":"App.PageAppearing","type":"navigation","data":{"Page":"HomePage","Page.Name":"This"},"category":"navigation"},{"timestamp":"2025-02-07T20:52:01.641Z","message":"AppShell.Appearing","type":"system","category":"ui.lifecycle"},{"timestamp":"2025-02-07T20:52:01.642Z","message":"App.PageAppearing","type":"navigation","data":{"Page":"AppShell"},"category":"navigation"},{"timestamp":"2025-02-07T20:52:02.049Z","type":"http","data":{"url":"https://rounder-api.acumenmd.com/api/servicearea/timezone/GetTimeZones","method":"GET","status_code":"200"},"category":"http"},{"timestamp":"2025-02-07T20:52:02.230Z","type":"http","data":{"url":"https://rounder-api.acumenmd.com/api/composite/general/getuserdetails","method":"GET","status_code":"200"},"category":"http"},{"timestamp":"2025-02-07T20:52:02.326Z","type":"http","data":{"url":"https://rounder-api.acumenmd.com/api/servicearea/timezone/GetTimeZones","method":"GET","status_code":"200"},"category":"http"},{"timestamp":"2025-02-07T20:52:03.716Z","type":"http","data":{"url":"https://rounder-api.acumenmd.com/api/composite/general/getuserdetails","method":"GET","status_code":"200"},"category":"http"},{"timestamp":"2025-02-07T20:52:03.809Z","type":"http","data":{"url":"https://rounder-api.acumenmd.com/api/servicearea/timezone/GetTimeZones","method":"GET","status_code":"200"},"category":"http"}],"tags":{"ServiceArea":"APSGHNSA","Environment":"Production"},"debug_meta":{"images":[{"type":"pe_dotnet","debug_id":"821145f8-9b14-4606-a3ec-94d56ac86bf0-e6b42420","debug_file":"/Users/mikeherman/Repos/Acumen.Cadabra.Mobile/CadabraMobile/obj/Debug/net9.0-ios/iossimulator-arm64/CadabraMobile.pdb","code_id":"E6B424205cc000","code_file":"/Users/mikeherman/Library/Developer/CoreSimulator/Devices/E1B7745A-F47B-468C-9098-652D17586098/data/Containers/Bundle/Application/E7155477-BE65-4DEA-87BE-919B63A3248C/CadabraMobile.app/CadabraMobile.dll"}]}} {"type":"session","length":309} {"sid":"1b754786d54242f39f5147eaca8a2313","did":"e3124e8c-758a-4cf7-bb63-4012b72f8fd4","init":false,"started":"2025-02-07T15:51:28.336679-05:00","timestamp":"2025-02-07T20:52:09.696943+00:00","seq":1,"duration":41,"errors":1,"attrs":{"release":"com.acumenmd.cadabra.local@0.0.0\u002B0","environment":"debug"}}
Debug: Reading cached envelope: /Users/mikeherman/Library/Developer/CoreSimulator/Devices/E1B7745A-F47B-468C-9098-652D17586098/data/Containers/Data/Application/7B9C33F7-B673-4EC6-A95C-8C7A7CC52FB1/Library/Caches/Sentry/FF490A2D9A738DBC0B39B47D3C5F1CCCE05E6897/_processing/1738961529-6814_300e01729c044352836be11ca7706a95_1270322123.envelope
Debug: Sending cached envelope: 300e01729c044352836be11ca7706a95
Debug: HttpTransport: Envelope item of type transaction was discarded because it's rate-limited.
Debug: HttpTransport: Attached client report to envelope 300e01729c044352836be11ca7706a95.
Error: HttpTransport: Sentry rejected the envelope '300e01729c044352836be11ca7706a95'. Status code: TooManyRequests. Error detail: .
Debug: HttpTransport: Failed envelope '300e01729c044352836be11ca7706a95' has payload: {"sdk":{"name":"sentry.dotnet","version":"5.1.0"},"event_id":"300e01729c044352836be11ca7706a95","trace":{"trace_id":"588be66ffed64b32b021a6f467c5f23c","public_key":"e4c492770536f8d570f2562a10f6113e","sampled":"true","sample_rate":"1","release":"com.acumenmd.cadabra.local@0.0.0\u002B0","environment":"debug","transaction":"HomeViewModel.GoToHelp"},"sent_at":"2025-02-07T20:52:09.800028+00:00"} {"type":"client_report","length":200} {"timestamp":"2025-02-07T20:52:09.799254+00:00","discarded_events":[{"reason":"ratelimit_backoff","category":"span","quantity":1},{"reason":"ratelimit_backoff","category":"transaction","quantity":1}]}
Debug: No cached file to process.

Activity

  1. moved this to Waiting for: Product Owner in GitHub Issues with 👀 3on Feb 7, 2025
  2. jamescrosswell commented on Feb 8, 2025

    @jamescrosswell
    Collaborator

    @MichaelLHerman this won't be related to IsGlobalModeEnabled. That should be set to disabled for server applications (like ASP.NET Core applications) and enabled for client applications (like MAUI or WinForms). See the docs.

    It looks like the error you're getting is a 429 TooManyRequests... Sentry emits a 429 status code and specifies a Retry-After header. Events collected after receiving the 429 and before the time indicated by the Retry-After header get dropped, to avoid overwhelming the servers.

    In addition to Retry-After, Sentry (Relay) also includes a special response header X-Sentry-Rate-Limits containing a detailed list of all rate limits that apply per data category. If no specific category is included in the header then this limit applies to all categories.

    In your case I can see this in your logs:

    Error: HttpTransport: Sentry rejected the envelope '300e01729c044352836be11ca7706a95'. Status code: TooManyRequests. Error detail: .
    Debug: HttpTransport: Failed envelope '300e01729c044352836be11ca7706a95' has payload: {"sdk":{"name":"sentry.dotnet","version":"5.1.0"},"event_id":"300e01729c044352836be11ca7706a95","trace":{"trace_id":"588be66ffed64b32b021a6f467c5f23c","public_key":"e4c492770536f8d570f2562a10f6113e","sampled":"true","sample_rate":"1","release":"com.acumenmd.cadabra.local@0.0.0\u002B0","environment":"debug","transaction":"HomeViewModel.GoToHelp"},"sent_at":"2025-02-07T20:52:09.800028+00:00"} {"type":"client_report","length":200} {"timestamp":"2025-02-07T20:52:09.799254+00:00","discarded_events":[{"reason":"ratelimit_backoff","category":"span","quantity":1},{"reason":"ratelimit_backoff","category":"transaction","quantity":1}]}
    Debug: No cached file to process.
    

    There is no category for client reports, since there's no limit to the number of client reports that can be sent.

    So in your case, I think your application has simply sent too many messages to Sentry in a short space of time. The server is overwhelmed and protecting itself, so it's telling our SDK to stop sending envelopes (of any kind - including error reports and even client reports).

    This isn't a bug... it's a resilience feature to protect Sentry's ingestion servers...

  3. moved this from Waiting for: Product Owner to No status in GitHub Issues with 👀 3on Feb 8, 2025
  4. MichaelLHerman commented on Feb 8, 2025

    @MichaelLHerman
    Author

    Since the sdk is in charge of making requests (it’s not something I can even do myself), from my perspective this is a bug since we are losing data. Why am I getting these 429s in the first place? Shouldn’t the client suspend retrying until after the server tells it to? I saw that it kept on retrying.

    Maybe debug logging should be outputting those header values for you to better troubleshoot.

  5. moved this to Waiting for: Product Owner in GitHub Issues with 👀 3on Feb 8, 2025
  6. jamescrosswell commented on Feb 9, 2025

    @jamescrosswell
    Collaborator

    Hi @MichaelLHerman,

    Since the sdk is in charge of making requests (it’s not something I can even do myself), from my perspective this is a bug since we are losing data.

    The error reflects the fact that the server has received too many requests. That's a function of how many application instances are sending data and how frequently. About the only thing the SDK could do is try to throttle traffic to the server, but that would be only a stop gap measure. Ultimately, if too many requests are being made to the server, requests have to be discarded.

    The alternative would be to cache/stockpile envelopes and then once the server was accepting requests again, try to send the backlog of envelopes... which would overload the server almost instantly and set off a vicious cycle that basically brings the server down permanently.

    One thing you could do is tweak the transaction sample rate... and we do have an item on the backlog to do something like that automatically for you:

    Shouldn’t the client suspend retrying until after the server tells it to? I saw that it kept on retrying.

    It should just drops the envelopes for a 429:

    // Check if there is at least one matching category for this item that is rate-limited
    var isRateLimited = CategoryLimitResets
    .Any(kvp => kvp.Value > now && kvp.Key.Matches(item));
    if (isRateLimited)
    {
    var reason = DiscardReason.RateLimitBackoff;
    _options.ClientReportRecorder.RecordDiscardedEvent(reason, item.DataCategory);
    _options.LogDebug(
    "{0}: Envelope item of type {1} was discarded because it's rate-limited.",
    _typeName,
    item.TryGetType());

    For other network error types (e.g. network unavailable) it will retry but for a 429 error the intended behaviour is to drop envelopes until the server has capacity to process them again.

    Maybe debug logging should be outputting those header values for you to better troubleshoot.

    That is certainly a good idea!

  7. moved this from Waiting for: Product Owner to No status in GitHub Issues with 👀 3on Feb 9, 2025
  8. MichaelLHerman commented on Feb 10, 2025

    @MichaelLHerman
    Author

    @jamescrosswell

    Looks like the 429s are from the transaction quota being exceeded. The first 429 has this additional error detail.

    2025-02-09 22:38:02.204874-0500 CadabraMobile[75310:4330522] Error: HttpTransport: Sentry rejected the envelope '1162b5a00364485fb653920d63faef83'. Status code: TooManyRequests. Error detail: Sentry dropped data due to a quota or internal rate limit being reached. This will not affect your application. See https://docs.sentry.io/product/accounts/quotas/ for more information.. Error causes: .

    I had the app throw both handled (through Sentry.SentrySdk.CaptureException) and unhandled .net exception.
    I do see the app sending crash reports before the 429, but I don't see the crash report showing up on Sentry

    Full log attached

    I'll try this on device instead of debugger tomorrow

    sentry 429.txt.zip

  9. 64 remaining items

  10. jamescrosswell commented on Jul 22, 2026

    @jamescrosswell
    Collaborator

    A quick note - this issue is potentially related to:

    That fix wouldn't directly explain this behaviour. However, if 429 rate limited responses were being returned by the server for error events, prior to that fix (which still hasn't been merged/released) sentry-dotnet wouldn't have reported this in it's logs... so it might seem like it was dropping error events even though these hadn't been rate limited. Actually these had been rate limited (by Relay) but the SDK wasn't picking up on that and would never log this in it's debug output.

    That doesn't sound like what most folks in this thread are describing... but the two issues aren't entirely unrelated so I figured I'd mention the other issue here. Worth bumping to version 6.8.0 once this has been released (hopefully later this week).

  11. longzheng commented on Jul 24, 2026

    @longzheng

    We also experienced this behaviour with SDK v6.3.0

    Our log showed

    Sentry.ISentryClient: Warning: HttpTransport: Sentry rejected the envelope '(null)' due to rate limiting. This may indicate that you are sending too much data or have exceeded your quota. See https://docs.sentry.io/product/accounts/quotas/ for more information. Server response:
          HttpTransport: Sentry rejected the envelope '(null)' due to rate limiting. This may indicate that you are sending too much data or have exceeded your quota. See https://docs.sentry.io/product/accounts/quotas/ for more information. Server response:
    

    In our scenario we exceeded our metrics and spans quotas, but our errors quota was sufficient.

  12. moved this to Waiting for: Product Owner in GitHub Issues with 👀 3on Jul 24, 2026
  13. jamescrosswell commented on Jul 24, 2026

    @jamescrosswell
    Collaborator

    We also experienced this behaviour with SDK v6.3.0

    Version 6.8.0 will include the fix mentioned above - so might be worth giving that a go:

    If nothing else, it will give you more accurate logs about what is being dropped and why (the SDKs logs will agree with the server).

  14. moved this from Waiting for: Product Owner to No status in GitHub Issues with 👀 3on Jul 24, 2026
  15. moved this to Waiting for: Product Owner in GitHub Issues with 👀 3on Aug 12, 2026
  16. PeiYanMYOB commented on Aug 12, 2026

    @PeiYanMYOB

    We still have this issue after upgrading Sentry version to 6.8.0.

    The root cause seems is when the transaction was rejected by Sentry with HTTP 429, the .NET SDK’s global RetryAfterHandler short-circuits all subsequent HTTP requests for ~60 seconds and returns a synthetic 429 (no body, no rate-limit headers). The source code is here.

    Our Environment

    • SDK: Sentry .NET 6.8.0
    • Runtime: .NET Framework 4.8 (WinForms desktop app)

    Our Sentry debug log is as below.
    Debug: Sending cached envelope: '03c8b96aabff48b48ded70f4cf561d1c'
    Debug: Parsing rate limit headers: 60:transaction;profile;span:organization:transaction_usage_exceeded, 60:transaction:project:project_quota_transaction_usage_exceeded
    Warning: HttpTransport: Sentry rejected the envelope '03c8b96aabff48b48ded70f4cf561d1c' due to rate limiting.This may indicate that you are sending too much data or have exceeded your quota. See https://docs.sentry.io/product/accounts/quotas/ for more information. Server response: Sentry dropped data due to a quota or internal rate limit being reached......
    Debug: HttpTransport: Failed envelope '03c8b96aabff48b48ded70f4cf561d1c' has payload: {"sdk":{"name":"sentry.dotnet","version":"6.8.0"},"event_id":"03c8b96aabff48b48ded70f4cf561d1c",.......,"sent_at":"2026-07-30T07:20:57.4792989+00:00"} {"type":"transaction","length":2384}
    ......
    ......
    ......
    Debug: Sending cached envelope: '4cc5d8b6879e4fd7a588353498fa6aae'
    Debug: HttpTransport: Failed envelope '4cc5d8b6879e4fd7a588353498fa6aae' has payload: {"sdk":{"name":"sentry.dotnet","version":"6.8.0"},"event_id":"4cc5d8b6879e4fd7a588353498fa6aae"......},"sent_at":"2026-07-30T07:21:13.9191249+00:00"} {"type":"event","length":33963}

    From the second log, we can see the transaction was rejected by Sentry with HTTP 429 because both organization and project transaction quotas were exhausted (transaction_usage_exceeded / project_quota_transaction_usage_exceeded).This happened at about 2026-07-30T07:20:57.

    From the six log, we can see it failed to send a event at 2026-07-30T07:21:13. This occurred within the 60-second rate-limit window after the transaction was rejected with a rate limit. After that real 429, the .NET SDK’s global RetryAfterHandler short-circuits all subsequent HTTP requests for ~60 seconds and returns a synthetic 429 (no body, no rate-limit headers). The global RetryAfterHandler also blocked the error envelope, so it never reached the server.

  17. jamescrosswell commented on Aug 13, 2026

    @jamescrosswell
    Collaborator

    @PeiYanMYOB thank you - with your description and analysis, I've finally managed to reproduce it.

    Fix coming soon!

  18. moved this from Waiting for: Product Owner to No status in GitHub Issues with 👀 3on Aug 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    .NETPull requests that update .net codeBugSomething isn't workingErrors

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions