getsentry / getsentry/sentry

UI shows symbolication error without indication of what to do about it

Open
#97,054 2 comments 0 reactions 0 assignees View on GitHub
Improvement Issues > Details
Dominant language
Python
Stars
44.8k
Forks
4.9k
Avg merge
22h 21m
Merged PRs (30d)
586

Description

Example: https://bruno-garcia.sentry.io/issues/6786591088/?project=4509776199155712&query=is%3Aunresolved&referrer=issue-stream

tl;dr: If the frame has line number, path, file name, function, there's nothing else to add other than source context.

So symbolication is not necessarily needed (for line numbers and functions). But instead, we're adding a `symbolication_status` to it, indicating we're trying to symbolicate it.

In such case we could skip symbolication altogether, and avoid showing the symbolication error. Or at least indicate to the user that source context is available if they upload `pdb`s with embedded sources or `source_link`. Or source bundles, to get source context. But the UI has no indication of that.

```
{
"function": "async Task Program.Main(string[] args)",
"package": "ConsoleOnboarding, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null",
"filename": "Program.cs",
"abs_path": "/Users/bruno/git/ConsoleOnboarding/ConsoleOnboarding/Program.cs",
"lineno": 49,
"colno": 21,
"in_app": true,
"data": {
"client_in_app": true,
"symbolicator_status": "missing"
},
"instruction_addr": "0xe2",
"addr_mode": "rel:2",
"function_id": "0x6b"
},
```

Running Sentry on a new app, without setting up symbol upload but having debug symbols locally that are resolved by the SDK result in proper stack traces:

Image

Note function name. Line number and paths (the last two only resolve with debug symbols are available in .NET).

But at the end I see this error:
Image

JSON

```json
{
"event_id": "13dc41f0a50d4a2fa7e42cd9df991b67",
"project": 4509776199155712,
"release": "ConsoleOnboarding@1.0.0+b19f7b6a45e25201e599808761c1f12ea5f2297b",
"dist": null,
"platform": "csharp",
"message": "Failed to find credentials file",
"datetime": "2025-08-02T19:49:10+00:00",
"tags": [
[
"environment",
"production"
],
[
"handled",
"yes"
],
[
"level",
"error"
],
[
"logger",
"ConsoleOnboarding.Program"
],
[
"mechanism",
"SentryLogger"
],
[
"os",
"macOS 15.5.0"
],
[
"os.name",
"macOS"
],
[
"runtime",
".NET 9.0.6"
],
[
"runtime.name",
".NET"
],
[
"release",
"ConsoleOnboarding@1.0.0+b19f7b6a45e25201e599808761c1f12ea5f2297b"
],
[
"user",
"id:bc9505e7-d047-4af0-b829-8a619ff74eff"
]
],
"_dsc": {
"environment": "production",
"public_key": "d2237931928284026e4cedf68889d49c",
"release": "ConsoleOnboarding@1.0.0+b19f7b6a45e25201e599808761c1f12ea5f2297b",
"replay_id": null,
"trace_id": "74a7be1eb3b7425199ea1269b476063c",
"transaction": null
},
"_metrics": {
"bytes.ingested.event": 9353,
"bytes.stored.event": 26259
},
"contexts": {
"Current Culture": {
"calendar": "GregorianCalendar",
"display_name": "English (Canada)",
"name": "en-CA",
"type": "Current Culture"
},
"Dynamic Code": {
"Compiled": true,
"Supported": true,
"type": "Dynamic Code"
},
"Memory Info": {
"compacted": false,
"concurrent": false,
"finalization_pending_count": 0,
"high_memory_load_threshold_bytes": 34789235097,
"pause_durations": [0, 0],
"total_allocated_bytes": 804104,
"total_available_memory_bytes": 38654705664,
"type": "Memory Info"
},
"ThreadPool Info": {
"available_completion_port_threads": 1000,
"available_worker_threads": 32767,
"max_completion_port_threads": 1000,
"max_worker_threads": 32767,
"min_completion_port_threads": 1,
"min_worker_threads": 14,
"type": "ThreadPool Info"
},
"app": {
"app_start_time": "2025-08-02T19:49:10.01795+00:00",
"type": "app"
},
"device": {
"boot_time": "2025-07-25T05:56:32.5244+00:00",
"timezone": "Canada/Eastern",
"timezone_display_name": "(UTC-05:00) Eastern Time (Toronto)",
"type": "device"
},
"os": {
"os": "macOS 15.5.0",
"name": "macOS",
"version": "15.5.0",
"raw_description": "Darwin 24.5.0 Darwin Kernel Version 24.5.0: Tue Apr 22 19:52:00 PDT 2025; root:xnu-11417.121.6~2/RELEASE_ARM64_T6031",
"type": "os"
},
"runtime": {
"runtime": ".NET 9.0.6",
"name": ".NET",
"version": "9.0.6",
"raw_description": ".NET 9.0.6",
"identifier": "osx-arm64",
"type": "runtime"
},
"trace": {
"trace_id": "74a7be1eb3b7425199ea1269b476063c",
"span_id": "ad5381a4e80fda8e",
"status": "unknown",
"origin": "manual",
"type": "trace"
}
},
"culprit": "",
"debug_meta": {
"images": [
{
"code_id": "fd246c0e66200",
"code_file": "/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App/9.0.6/Microsoft.Extensions.Logging.dll",
"debug_id": "bfa2f573-ef94-4638-b066-d7d39997fccc-bc0f223b",
"debug_file": "/_/artifacts/obj/Microsoft.Extensions.Logging/Release/net9.0/Microsoft.Extensions.Logging.pdb",
"debug_checksum": "SHA256:73f5a2bf94ef38867066d7d39997fccc3b220f3c64c28ce63f04bd8adca010f2",
"image_addr": "0x0",
"image_size": 0,
"candidates": [
{
"download": {
"status": "notfound"
},
"source": "sentry:android",
"source_name": "Android"
},
{
"download": {
"status": "notfound"
},
"source": "sentry:ios",
"source_name": "Apple"
},
{
"debug": {
"status": "ok"
},
"download": {
"features": {
"has_debug_info": true,
"has_sources": true,
"has_symbols": false,
"has_unwind_info": false
},
"status": "ok"
},
"source": "sentry:microsoft",
"source_name": "Microsoft"
},
{
"download": {
"status": "notfound"
},
"source": "sentry:nuget",
"source_name": "NuGet.org"
},
{
"download": {
"status": "notfound"
},
"source": "sentry:project",
"source_name": "Sentry"
},
{
"download": {
"features": {
"has_debug_info": false,
"has_sources": true,
"has_symbols": false,
"has_unwind_info": false
},
"status": "ok"
},
"location": "https://raw.githubusercontent.com/dotnet/runtime/3875b54e7b10b10606b105340199946d0b877754/src/libraries/Microsoft.Extensions.Logging/src/Logger.cs",
"source": "sourcelink",
"source_name": "unknown"
}
],
"debug_status": "found",
"features": {
"has_debug_info": true,
"has_sources": true,
"has_symbols": false,
"has_unwind_info": false
},
"type": "pe_dotnet"
},
{
"code_id": "a370608e74200",
"code_file": "/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App/9.0.6/Microsoft.Extensions.Logging.Abstractions.dll",
"debug_id": "bcb51846-922d-4166-b19e-49d8ab77981c-85ea9bb3",
"debug_file": "/_/artifacts/obj/Microsoft.Extensions.Logging.Abstractions/Release/net9.0/Microsoft.Extensions.Logging.Abstractions.pdb",
"debug_checksum": "SHA256:4618b5bc2d926641b19e49d8ab77981cb39bea059cad3ce5fee468ee346aa113",
"image_addr": "0x0",
"image_size": 0,
"candidates": [
{
"download": {
"status": "notfound"
},
"source": "sentry:android",
"source_name": "Android"
},
{
"download": {
"status": "notfound"
},
"source": "sentry:ios",
"source_name": "Apple"
},
{
"debug": {
"status": "ok"
},
"download": {
"features": {
"has_debug_info": true,
"has_sources": true,
"has_symbols": false,
"has_unwind_info": false
},
"status": "ok"
},
"source": "sentry:microsoft",
"source_name": "Microsoft"
},
{
"download": {
"status": "notfound"
},
"source": "sentry:nuget",
"source_name": "NuGet.org"
},
{
"download": {
"status": "notfound"
},
"source": "sentry:project",
"source_name": "Sentry"
},
{
"download": {
"features": {
"has_debug_info": false,
"has_sources": true,
"has_symbols": false,
"has_unwind_info": false
},
"status": "ok"
},
"location": "https://raw.githubusercontent.com/dotnet/runtime/3875b54e7b10b10606b105340199946d0b877754/src/libraries/Microsoft.Extensions.Logging.Abstractions/src/LoggerExtensions.cs",
"source": "sourcelink",
"source_name": "unknown"
}
],
"debug_status": "found",
"features": {
"has_debug_info": true,
"has_sources": true,
"has_symbols": false,
"has_unwind_info": false
},
"type": "pe_dotnet"
},
{
"code_id": "d466658014000",
"code_file": "/Users/bruno/git/ConsoleOnboarding/ConsoleOnboarding/bin/Debug/net9.0/ConsoleOnboarding.dll",
"debug_id": "ff2c81cb-372c-4757-b487-4167eaaedcdd-ff0ef157",
"debug_file": "/Users/bruno/git/ConsoleOnboarding/ConsoleOnboarding/obj/Debug/net9.0/ConsoleOnboarding.pdb",
"debug_checksum": "SHA256:cb812cff2c37571734874167eaaedcdd57f10effe162b12f735b142db5abddac",
"image_addr": "0x0",
"image_size": 0,
"candidates": [
{
"download": {
"status": "notfound"
},
"source": "sentry:android",
"source_name": "Android"
},
{
"download": {
"status": "notfound"
},
"source": "sentry:ios",
"source_name": "Apple"
},
{
"download": {
"status": "notfound"
},
"source": "sentry:microsoft",
"source_name": "Microsoft"
},
{
"download": {
"status": "notfound"
},
"source": "sentry:nuget",
"source_name": "NuGet.org"
},
{
"download": {
"status": "notfound"
},
"source": "sentry:project",
"source_name": "Sentry"
}
],
"debug_status": "missing",
"features": {
"has_debug_info": false,
"has_sources": false,
"has_symbols": false,
"has_unwind_info": false
},
"type": "pe_dotnet"
},
{
"code_id": "847726d0fd3200",
"code_file": "/usr/local/share/dotnet/shared/Microsoft.NETCore.App/9.0.6/System.Private.CoreLib.dll",
"debug_id": "88f749db-4a2f-a70c-a550-b9346d3159c4-7384be",
"debug_file": "/_/artifacts/obj/coreclr/System.Private.CoreLib/osx.arm64.Release/System.Private.CoreLib.pdb",
"debug_checksum": "SHA256:db49f7882f4a0ca7a550b9346d3159c4be84730091f618059dbcf498b214d4bd",
"image_addr": "0x0",
"candidates": [
{
"download": {
"status": "notfound"
},
"source": "sentry:android",
"source_name": "Android"
},
{
"download": {
"status": "notfound"
},
"source": "sentry:ios",
"source_name": "Apple"
},
{
"debug": {
"status": "ok"
},
"download": {
"features": {
"has_debug_info": true,
"has_sources": true,
"has_symbols": false,
"has_unwind_info": false
},
"status": "ok"
},
"source": "sentry:microsoft",
"source_name": "Microsoft"
},
{
"download": {
"status": "notfound"
},
"source": "sentry:nuget",
"source_name": "NuGet.org"
},
{
"download": {
"status": "notfound"
},
"source": "sentry:project",
"source_name": "Sentry"
},
{
"download": {
"features": {
"has_debug_info": false,
"has_sources": true,
"has_symbols": false,
"has_unwind_info": false
},
"status": "ok"
},
"location": "https://raw.githubusercontent.com/dotnet/runtime/3875b54e7b10b10606b105340199946d0b877754/src/libraries/System.Private.CoreLib/src/System/Runtime/CompilerServices/AsyncMethodBuilderCore.cs",
"source": "sourcelink",
"source_name": "unknown"
}
],
"debug_status": "found",
"features": {
"has_debug_info": true,
"has_sources": true,
"has_symbols": false,
"has_unwind_info": false
},
"type": "pe_dotnet"
}
]
},
"environment": "production",
"exception": {
"values": [
{
"type": "System.IO.FileNotFoundException",
"value": "Credentials file not found at path specified in GOOGLE_APPLICATION_CREDENTIALS: /Users/bruno/.console-onboarding/client_secret_1067953069071-dbag11s217htfnkogvbdi15epq88nksr.apps.googleusercontent.com.json",
"module": "System.Private.CoreLib, Version=9.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"thread_id": 1,
"mechanism": {
"type": "SentryLogger",
"handled": true,
"data": {
"HResult": "0x80070002"
}
}
}
]
},
"fingerprint": [
"{{ default }}"
],
"grouping_config": {
"enhancements": "KLUv_SAYwQAAkwORs25ld3N0eWxlOjIwMjMtMDEtMTGQ#KLUv_SAYwQAAkwORs25ld3N0eWxlOjIwMjMtMDEtMTGQ#KLUv_SAYwQAAkwORs25ld3N0eWxlOjIwMjMtMDEtMTGQ",
"id": "newstyle:2023-01-11"
},
"hashes": [
"cc3498861370a372cce2d723d7c3efb4"
],
"ingest_path": [
{
"version": "25.7.0",
"public_key": "XE7QiyuNlja9PZ7I9qJlwQotzecWrUIN91BAO7Q5R38"
}
],
"key_id": "4696329",
"level": "error",
"location": "Program.cs",
"logentry": {
"formatted": "Failed to find credentials file"
},
"logger": "ConsoleOnboarding.Program",
"metadata": {
"filename": "Program.cs",
"function": "async Task Program.Main(string[] args)",
"in_app_frame_mix": "mixed",
"type": "System.IO.FileNotFoundException",
"value": "Credentials file not found at path specified in GOOGLE_APPLICATION_CREDENTIALS: /Users/bruno/.console-onboarding/client_secret_1067953069071-dbag11s217htfnkogvbdi15epq88nksr.apps.googleusercontent.com.json"
},
"modules": {
"ConsoleOnboarding": "1.0.0.0",
"Microsoft.Extensions.Configuration": "9.0.0.0",
"Microsoft.Extensions.Configuration.Abstractions": "9.0.0.0",
"Microsoft.Extensions.Configuration.Binder": "9.0.0.0",
"Microsoft.Extensions.DependencyInjection": "9.0.0.0",
"Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.0.0",
"Microsoft.Extensions.Http": "9.0.0.0",
"Microsoft.Extensions.Logging": "9.0.0.0",
"Microsoft.Extensions.Logging.Abstractions": "9.0.0.0",
"Microsoft.Extensions.Logging.Configuration": "9.0.0.0",
"Microsoft.Extensions.Logging.Console": "9.0.0.0",
"Microsoft.Extensions.Options": "9.0.0.0",
"Microsoft.Extensions.Options.ConfigurationExtensions": "9.0.0.0",
"Microsoft.Extensions.Primitives": "9.0.0.0",
"Microsoft.Win32.Primitives": "9.0.0.0",
"Sentry": "5.12.0.0",
"Sentry.Extensions.Logging": "5.12.0.0",
"System.Collections": "9.0.0.0",
"System.Collections.Concurrent": "9.0.0.0",
"System.Collections.Immutable": "9.0.0.0",
"System.ComponentModel": "9.0.0.0",
"System.ComponentModel.Primitives": "9.0.0.0",
"System.Console": "9.0.0.0",
"System.Diagnostics.DiagnosticSource": "9.0.0.0",
"System.Diagnostics.Process": "9.0.0.0",
"System.Diagnostics.StackTrace": "9.0.0.0",
"System.Diagnostics.Tracing": "9.0.0.0",
"System.IO.Compression": "9.0.0.0",
"System.IO.MemoryMappedFiles": "9.0.0.0",
"System.Linq": "9.0.0.0",
"System.Linq.Expressions": "9.0.0.0",
"System.Memory": "9.0.0.0",
"System.Net.Http": "9.0.0.0",
"System.Net.Primitives": "9.0.0.0",
"System.Private.CoreLib": "9.0.0.0",
"System.Private.Uri": "9.0.0.0",
"System.Reflection.Emit.ILGeneration": "9.0.0.0",
"System.Reflection.Emit.Lightweight": "9.0.0.0",
"System.Reflection.Metadata": "9.0.0.0",
"System.Reflection.Primitives": "9.0.0.0",
"System.Runtime": "9.0.0.0",
"System.Runtime.InteropServices": "9.0.0.0",
"System.Text.Encoding.Extensions": "9.0.0.0",
"System.Text.Json": "9.0.0.0",
"System.Text.RegularExpressions": "9.0.0.0",
"System.Threading": "9.0.0.0",
"System.Threading.Thread": "9.0.0.0",
"System.Threading.ThreadPool": "9.0.0.0"
},
"nodestore_insert": 1754164159.47176,
"received": 1754164150.79107,
"sdk": {
"name": "sentry.dotnet.extensions.logging",
"version": "5.12.0-alpha.0",
"packages": [
{
"name": "nuget:sentry.dotnet",
"version": "5.12.0-alpha.0"
},
{
"name": "nuget:Sentry.Extensions.Logging",
"version": "5.12.0-alpha.0"
}
]
},
"threads": {
"values": [
{
"id": 1,
"stacktrace": {
"frames": [
{
"function": "void Program.\u003CMain\u003E(?)",
"package": "ConsoleOnboarding, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null",
"in_app": true,
"data": {
"client_in_app": true,
"symbolicator_status": "missing"
},
"instruction_addr": "0x0",
"addr_mode": "rel:2",
"function_id": "0x2c"
},
{
"function": "Task Program.Main(string[] args)",
"package": "ConsoleOnboarding, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null",
"in_app": true,
"data": {
"client_in_app": true,
"symbolicator_status": "missing"
},
"instruction_addr": "0x1f",
"addr_mode": "rel:2",
"function_id": "0x25"
},
{
"function": "void AsyncMethodBuilderCore.Start\u003CTStateMachine\u003E(ref TStateMachine stateMachine)",
"package": "System.Private.CoreLib, Version=9.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"filename": "AsyncMethodBuilderCore.cs",
"abs_path": "/_/src/libraries/System.Private.CoreLib/src/System/Runtime/CompilerServices/AsyncMethodBuilderCore.cs",
"lineno": 38,
"pre_context": [
" ExecutionContext? previousExecutionCtx = currentThread._executionContext;",
" SynchronizationContext? previousSyncCtx = currentThread._synchronizationContext;",
"",
" try",
" {"
],
"context_line": " stateMachine.MoveNext();",
"post_context": [
" }",
" finally",
" {",
" // The common case is that these have not changed, so avoid the cost of a write barrier if not needed.",
" if (previousSyncCtx != currentThread._synchronizationContext)"
],
"in_app": false,
"data": {
"client_in_app": false,
"symbolicator_status": "symbolicated"
},
"instruction_addr": "0x28",
"addr_mode": "rel:3",
"function_id": "0x73ba",
"source_link": "https://raw.githubusercontent.com/dotnet/runtime/3875b54e7b10b10606b105340199946d0b877754/src/libraries/System.Private.CoreLib/src/System/Runtime/CompilerServices/AsyncMethodBuilderCore.cs"
},
{
"function": "async Task Program.Main(string[] args)",
"package": "ConsoleOnboarding, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null",
"filename": "Program.cs",
"abs_path": "/Users/bruno/git/ConsoleOnboarding/ConsoleOnboarding/Program.cs",
"lineno": 49,
"colno": 21,
"in_app": true,
"data": {
"client_in_app": true,
"symbolicator_status": "missing"
},
"instruction_addr": "0xe2",
"addr_mode": "rel:2",
"function_id": "0x6b"
},
{
"function": "void LoggerExtensions.LogError(ILogger logger, Exception exception, string message, params object[] args)",
"package": "Microsoft.Extensions.Logging.Abstractions, Version=9.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60",
"filename": "LoggerExtensions.cs",
"abs_path": "/_/src/libraries/Microsoft.Extensions.Logging.Abstractions/src/LoggerExtensions.cs",
"lineno": 346,
"pre_context": [
" /// logger.LogError(exception, \"Error while processing request from {Address}\", address)",
" /// \u003C/code\u003E",
" /// \u003C/example\u003E",
" public static void LogError(this ILogger logger, Exception? exception, string? message, params object?[] args)",
" {"
],
"context_line": " logger.Log(LogLevel.Error, exception, message, args);",
"post_context": [
" }",
"",
" /// \u003Csummary\u003E",
" /// Formats and writes an error log message.",
" /// \u003C/summary\u003E"
],
"in_app": false,
"data": {
"client_in_app": false,
"symbolicator_status": "symbolicated"
},
"instruction_addr": "0x0",
"addr_mode": "rel:1",
"function_id": "0x66",
"source_link": "https://raw.githubusercontent.com/dotnet/runtime/3875b54e7b10b10606b105340199946d0b877754/src/libraries/Microsoft.Extensions.Logging.Abstractions/src/LoggerExtensions.cs"
},
{
"function": "void LoggerExtensions.Log(ILogger logger, LogLevel logLevel, EventId eventId, Exception exception, string message, params object[] args)",
"package": "Microsoft.Extensions.Logging.Abstractions, Version=9.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60",
"filename": "LoggerExtensions.cs",
"abs_path": "/_/src/libraries/Microsoft.Extensions.Logging.Abstractions/src/LoggerExtensions.cs",
"lineno": 486,
"pre_context": [
" /// \u003Cparam name=\"args\"\u003EAn object array that contains zero or more objects to format.\u003C/param\u003E",
" public static void Log(this ILogger logger, LogLevel logLevel, EventId eventId, Exception? exception, string? message, params object?[] args)",
" {",
" ThrowHelper.ThrowIfNull(logger);",
""
],
"context_line": " logger.Log(logLevel, eventId, new FormattedLogValues(message, args), exception, _messageFormatter);",
"post_context": [
" }",
"",
" //------------------------------------------Scope------------------------------------------//",
"",
" /// \u003Csummary\u003E"
],
"in_app": false,
"data": {
"client_in_app": false,
"symbolicator_status": "symbolicated"
},
"instruction_addr": "0x17",
"addr_mode": "rel:1",
"function_id": "0x6f",
"source_link": "https://raw.githubusercontent.com/dotnet/runtime/3875b54e7b10b10606b105340199946d0b877754/src/libraries/Microsoft.Extensions.Logging.Abstractions/src/LoggerExtensions.cs"
},
{
"function": "void Logger.Log\u003CTState\u003E(LogLevel logLevel, EventId eventId, TState state, Exception exception, Func\u003CTState, Exception, string\u003E formatter)",
"package": "Microsoft.Extensions.Logging, Version=9.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60",
"filename": "Logger.cs",
"abs_path": "/_/src/libraries/Microsoft.Extensions.Logging/src/Logger.cs",
"lineno": 44,
"pre_context": [
" if (!loggerInfo.IsEnabled(logLevel))",
" {",
" continue;",
" }",
""
],
"context_line": " LoggerLog(logLevel, eventId, loggerInfo.Logger, exception, formatter, ref exceptions, state);",
"post_context": [
" }",
"",
" if (exceptions != null && exceptions.Count \u003E 0)",
" {",
" ThrowLoggingError(exceptions);"
],
"in_app": false,
"data": {
"client_in_app": false,
"symbolicator_status": "symbolicated"
},
"instruction_addr": "0x22",
"addr_mode": "rel:0",
"function_id": "0x32",
"source_link": "https://raw.githubusercontent.com/dotnet/runtime/3875b54e7b10b10606b105340199946d0b877754/src/libraries/Microsoft.Extensions.Logging/src/Logger.cs"
},
{
"function": "void Logger.Log\u003CTState\u003E(LogLevel logLevel, EventId eventId, TState state, Exception exception, Func\u003CTState, Exception, string\u003E formatter)+LoggerLog(LogLevel logLevel, EventId eventId, ILogger logger, Exception exception, Func\u003CTState, Exception, string\u003E formatter, ref List\u003CException\u003E exceptions, in TState state)",
"package": "Microsoft.Extensions.Logging, Version=9.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60",
"filename": "Logger.cs",
"abs_path": "/_/src/libraries/Microsoft.Extensions.Logging/src/Logger.cs",
"lineno": 56,
"pre_context": [
"",
" static void LoggerLog(LogLevel logLevel, EventId eventId, ILogger logger, Exception? exception, Func\u003CTState, Exception?, string\u003E {snip}",
" {",
" try",
" {"
],
"context_line": " logger.Log(logLevel, eventId, state, exception, formatter);",
"post_context": [
" }",
" catch (Exception ex)",
" {",
" exceptions ??= new List\u003CException\u003E();",
" exceptions.Add(ex);"
],
"in_app": false,
"data": {
"client_in_app": false,
"symbolicator_status": "symbolicated"
},
"instruction_addr": "0x0",
"addr_mode": "rel:0",
"function_id": "0x37",
"source_link": "https://raw.githubusercontent.com/dotnet/runtime/3875b54e7b10b10606b105340199946d0b877754/src/libraries/Microsoft.Extensions.Logging/src/Logger.cs"
}
]
},
"raw_stacktrace": {
"frames": [
{
"function": "void Program.\u003CMain\u003E(?)",
"package": "ConsoleOnboarding, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null",
"in_app": true,
"data": {
"client_in_app": true
},
"instruction_addr": "0x0",
"addr_mode": "rel:2",
"function_id": "0x2c"
},
{
"function": "Task Program.Main(string[] args)",
"package": "ConsoleOnboarding, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null",
"in_app": true,
"data": {
"client_in_app": true
},
"instruction_addr": "0x1f",
"addr_mode": "rel:2",
"function_id": "0x25"
},
{
"function": "void AsyncMethodBuilderCore.Start\u003CTStateMachine\u003E(ref TStateMachine stateMachine)",
"package": "System.Private.CoreLib, Version=9.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"in_app": false,
"data": {
"client_in_app": false
},
"instruction_addr": "0x28",
"addr_mode": "rel:3",
"function_id": "0x73ba"
},
{
"function": "async Task Program.Main(string[] args)",
"package": "ConsoleOnboarding, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null",
"filename": "Program.cs",
"abs_path": "/Users/bruno/git/ConsoleOnboarding/ConsoleOnboarding/Program.cs",
"lineno": 49,
"colno": 21,
"in_app": true,
"data": {
"client_in_app": true
},
"instruction_addr": "0xe2",
"addr_mode": "rel:2",
"function_id": "0x6b"
},
{
"function": "void LoggerExtensions.LogError(ILogger logger, Exception exception, string message, params object[] args)",
"package": "Microsoft.Extensions.Logging.Abstractions, Version=9.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60",
"in_app": false,
"data": {
"client_in_app": false
},
"instruction_addr": "0x0",
"addr_mode": "rel:1",
"function_id": "0x66"
},
{
"function": "void LoggerExtensions.Log(ILogger logger, LogLevel logLevel, EventId eventId, Exception exception, string message, params object[] args)",
"package": "Microsoft.Extensions.Logging.Abstractions, Version=9.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60",
"in_app": false,
"data": {
"client_in_app": false
},
"instruction_addr": "0x17",
"addr_mode": "rel:1",
"function_id": "0x6f"
},
{
"function": "void Logger.Log\u003CTState\u003E(LogLevel logLevel, EventId eventId, TState state, Exception exception, Func\u003CTState, Exception, string\u003E formatter)",
"package": "Microsoft.Extensions.Logging, Version=9.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60",
"in_app": false,
"data": {
"client_in_app": false
},
"instruction_addr": "0x22",
"addr_mode": "rel:0",
"function_id": "0x32"
},
{
"function": "void Logger.Log\u003CTState\u003E(LogLevel logLevel, EventId eventId, TState state, Exception exception, Func\u003CTState, Exception, string\u003E formatter)+LoggerLog(LogLevel logLevel, EventId eventId, ILogger logger, Exception exception, Func\u003CTState, Exception, string\u003E formatter, ref List\u003CException\u003E exceptions, in TState state)",
"package": "Microsoft.Extensions.Logging, Version=9.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60",
"in_app": false,
"data": {
"client_in_app": false
},
"instruction_addr": "0x0",
"addr_mode": "rel:0",
"function_id": "0x37"
}
]
},
"crashed": false,
"current": true
}
]
},
"timestamp": 1754164150.28569,
"title": "System.IO.FileNotFoundException: Credentials file not found at path specified in GOOGLE_APPLICATION_CREDENTIALS: /apps.googleusercontent.com.json",
"type": "error",
"user": {
"id": "bc9505e7-d047-4af0-b829-8a619ff74eff",
"sentry_user": "id:bc9505e7-d047-4af0-b829-8a619ff74eff",
"geo": {
"country_code": "CA",
"city": "Toronto",
"subdivision": "Ontario",
"region": "Canada"
}
},
"version": "7"
}
````


Contributor guide

Open the contributing guide

Research direction

Start by reviewing the linked Sentry issue and the reported symbolication_status: missing example, focusing on the current UI treatment of frames that already have function, filename, and line information. Done should make the displayed state explain what source context is available or avoid presenting a misleading symbolication error.

Written by the indexing model from the issue text.

Assessment

Domain
frontend
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.