---
title: Troubleshooting .NET MAUI SDK Issues
description: Learn how to troubleshoot issues with .NET MAUI Monitoring.
breadcrumbs: >-
  Docs > RUM & Session Replay > Application Monitoring > .NET MAUI Monitoring >
  Troubleshooting .NET MAUI SDK Issues
---

> For the complete documentation index, see [llms.txt](https://docs.datadoghq.com/llms.txt).

# Troubleshooting .NET MAUI SDK Issues

## Overview{% #overview %}

If you encounter issues while using the Datadog .NET MAUI SDK, check the [open issues on GitHub](https://github.com/DataDog/dd-sdk-maui/issues) for known problems and solutions. If you continue to have trouble, contact [Datadog Support](https://docs.datadoghq.com/help/) for further assistance.

## Enable verbose SDK logging{% #enable-verbose-sdk-logging %}

You can enable verbose SDK logging to help diagnose issues. Set `Verbosity` on the SDK configuration — all internal messages at or above the provided level are written to Logcat (Android) and to the Xcode debugger console (iOS):

```
using Datadog.Maui;
using Datadog.Maui.Configuration;

DdSdk.Initialize(new DdSdkConfiguration
{
    ClientToken = "<CLIENT_TOKEN>",
    Environment = "<ENV_NAME>",
    TrackingConsent = TrackingConsent.Granted,
    Verbosity = SdkVerbosity.DEBUG,
});
```

Supported levels: `DEBUG`, `INFO`, `WARN`, `ERROR`. The same property can be set via JSON ([File-based configuration](https://docs.datadoghq.com/real_user_monitoring/application_monitoring/maui/setup.md#initialize-the-datadog-sdk)):

```
{ "Verbosity": "DEBUG" }
```

Enable verbose logging only while diagnosing — the additional log volume can affect application performance on debug devices.

## No RUM events appear in Datadog{% #no-rum-events-appear-in-datadog %}

Work through the checks below in order.

### 1. Confirm the SDK is initialized

`DdSdk.Initialize` (Pattern 2) and `.UseDatadog(...)` (Pattern 1) must run before any other Datadog API call. If you initialize from a non-default location (for example, a feature flag–gated startup path), make sure that code runs on every cold launch.

With verbose logging enabled, the SDK prints a startup message confirming the active site, environment, and feature set.

### 2. Confirm tracking consent is `Granted`

If `TrackingConsent` is `Pending` or `NotGranted`, the SDK does not send any data. Update the consent at runtime after the user accepts your privacy dialog:

```
DdSdk.SetTrackingConsent(TrackingConsent.Granted);
```

See [Set tracking consent (GDPR compliance)](https://docs.datadoghq.com/real_user_monitoring/application_monitoring/maui/setup.md#set-tracking-consent-gdpr-compliance) for the full state machine.

### 3. Confirm the right Datadog site

The default site is `Us1`. If your organization is on a different site (`Us3`, `Us5`, `Eu1`, `Ap1`, `Ap2`, `Us1Fed`), set `Site` accordingly on `DdSdkConfiguration`. The site selector at the top of these documentation pages updates code samples to match.

### 4. Confirm the application ID and client token

A wrong application ID silently drops events server-side. Double-check the values against the application you created in [**Digital Experience** > **Add an Application**](https://app.datadoghq.com/rum/application/create).

## Events appear, but stack traces are not symbolicated{% #events-appear-but-stack-traces-are-not-symbolicated %}

For native iOS and Android crashes, dSYMs (iOS) and `mapping.txt` (Android) must be uploaded to Datadog. See [Get deobfuscated stack traces](https://docs.datadoghq.com/real_user_monitoring/application_monitoring/maui/error_tracking.md#get-deobfuscated-stack-traces) for the full pipeline.

For managed C# stack traces, Portable PDB files must be bundled in the published app. See [Bundle Portable PDB files for C# stack traces](https://docs.datadoghq.com/real_user_monitoring/application_monitoring/maui/error_tracking.md#bundle-portable-pdb-files-for-c-stack-traces).

## C# errors and native crashes appear twice{% #c-errors-and-native-crashes-appear-twice %}

When `NativeCrashReportEnabled = true`, an unhandled C# exception that crashes the app is reported both as a managed C# error (via `AppDomain.UnhandledException`) and as a native crash (via the platform crash reporter). This is intentional — the two events share a session and view so you can correlate them. To keep only one, filter with [`ErrorEventMapper`](https://docs.datadoghq.com/real_user_monitoring/application_monitoring/maui/advanced_configuration.md#modify-or-drop-rum-events).

## Automatic actions are bucketed under the wrong view{% #automatic-actions-are-bucketed-under-the-wrong-view %}

`TapGestureRecognizer.Tapped` and `SwipeGestureRecognizer.Swiped` only fire on completion, so a tap or swipe that triggers a navigation is recorded against the destination view rather than the source. This is a known limitation that affects only `View`s with explicit gesture recognizers; `Button` and `ImageButton` taps are not affected. See [Known limitation: gesture-driven navigation](https://docs.datadoghq.com/real_user_monitoring/application_monitoring/maui/advanced_configuration.md#known-limitation-gesture-driven-navigation).

## View attributes attach to the wrong view{% #view-attributes-attach-to-the-wrong-view %}

`DdRum.AddViewAttribute` runs against the view that is active in the SDK at the time of the call. If you call it from a page constructor or `OnAppearing`, the SDK has not yet called `StartView` for the new page, and the attribute lands on the previous view.

Call `AddViewAttribute` from `OnNavigatedTo` instead — by then the SDK has started the destination view. See [Add view attributes](https://docs.datadoghq.com/real_user_monitoring/application_monitoring/maui/advanced_configuration.md#add-view-attributes).

## `dotnet publish` finishes but symbols are not uploaded

The MSBuild target skips silently when `datadog-ci` is missing or `DATADOG_API_KEY` is unset. The terminal logger hides those messages by default — add `-v n -tl:off` to `dotnet publish` to see them:

```
dotnet publish -c Release -f net10.0-ios -r ios-arm64 \
  -p:DatadogUploadSymbols=true -v n -tl:off
```

See [Symbol upload troubleshooting](https://docs.datadoghq.com/real_user_monitoring/application_monitoring/maui/error_tracking.md#troubleshooting) for the full diagnostic list.

## Further reading{% #further-reading %}

- [dd-sdk-maui source code](https://github.com/DataDog/dd-sdk-maui)
- [Explore Real User Monitoring](https://docs.datadoghq.com/real_user_monitoring.md)
