microsoft / appcenter-sdk-dotnet

Development repository for the App Center SDK for .NET platforms, including Xamarin
Other
311 stars 141 forks source link

WPF Desktop bridge app does not report crashes to the AppCenter #1742

Closed marekdovjak closed 6 months ago

marekdovjak commented 1 year ago

Description

We have a WPF application, which is distributed in the MSStore using the Windows Desktop bridge. While the application is tested as pure WPF app, it's properly reporting crashes to the AppCenter. But after packaging the exact same app using the Desktop bridge, crashes are no logner reported.

After enabling the Verbose log level and generating test crash, I can see there are 0 crash reports detected. I also checked the Logs.db file in user's AppData folder, table LogEntry doesn't contain any crash reports. It contains few core/analytics records, which are correctly sent to the AppCenter after running the app.

Repro Steps

  1. Create simple wpf app project with the appcenter sdk
  2. Generate test crash
  3. Verify the crash is reported to the AppCenter
  4. Add Windows Application Packaging project for the wpf app to the solution
  5. Run the Packaging project
  6. Generate test crash
  7. Crash is not reported to the AppCenter

Details

Platform: Win10, WPF, NET 7.0, Desktop Bridge SDK version 5.0.2 OS: Windows 10/11 Visual Studio Version 17.6.0

Workaround

I used the DispatcherUnhandledException += App_DispatcherUnhandledException; and

void App_DispatcherUnhandledException(object sender, System.Windows.Threading.DispatcherUnhandledExceptionEventArgs e)
{
    Crashes.TrackError(e.Exception);
}

as recommended in this issue https://github.com/microsoft/appcenter-sdk-dotnet/issues/1727, so crashes are reported as errors now.

DmitriyKirakosyan commented 1 year ago

Hi @marekdovjak , thank you for this report. I believe it is a duplicate of https://github.com/microsoft/appcenter-sdk-dotnet/issues/1727.

We already merged the fix and currently preparing the release. It should be available today or tomorrow. I'm closing it as a duplicate.

marekdovjak commented 1 year ago

@DmitriyKirakosyan I don't think it's duplicate. For wpf app, everything is working well. We have problems when packaging the wpf app with Windows Desktop Bridge.

After upgrading the AppCenter SDK to 5.0.2, problem still persits

DmitriyKirakosyan commented 1 year ago

Thank you for testing on new version and confirming the issue persists. We will investigate it.

You mentioned that using DispatcherUnhandledException works well for you as a workaround. In the latest version we added DispatcherUnhandledException event listener for catching exceptions, so I would expect it should resolve your issue...

MikhailSuendukov commented 1 year ago

Hello, I tried to reproduce your error, but when running a WPF application using Windows Application Packaging, crashes are successfully sent to the AppCenter portal. For further investigation, a small demo application that reproduces your error would be very useful to us.

marekdovjak commented 1 year ago

@MikhailSuendukov I realized that the steps I wrote to reproduce the problem were not complete. You have to use the Target Framework Moniker option. So instead of <TargetFramework>net7.0-windows</TargetFramework> use <TargetFramework>net7.0-windows10.0.17763.0</TargetFramework> or similar.

There's simple demo app in the attachment. With the moniker option, crashes are not reported.

WpfApp1.zip

MikhailSuendukov commented 1 year ago

Thank you very much for your demo app, indeed your bug is reproducible on this app. In that case, I will create a work item on our board and keep you updated on progress.

DmitriyKirakosyan commented 1 year ago

The fix was released, so I'm closing it.

marekdovjak commented 1 year ago

@DmitriyKirakosyan I did a quick test with the sample app I provided earlier and appcenter 5.0.3 - it still doesn't work with the target WapProjTemplate1 (desktop bridge).

MikhailSuendukov commented 1 year ago

Hi, I was able to reproduce the error, apparently the SDK incorrectly determines the type of the wrapped application, so I created a draft pull request to fix the bug.

sebaJoSt commented 9 months ago

when is the next release with this bug fix planned?

30797593 commented 8 months ago

when is the next release with this bug fix planned?

30797593 commented 8 months ago

I am encountering the same issue. The project, packaged as a WPF and uploaded to the Microsoft Store, can collect reports in its pure WPF form, but once packaged with the Desktop Bridge, it no longer can.

MikhailSuendukov commented 6 months ago

Hello, the AppCenter .NET SDK v5.0.4 has been released, including a fix for this issue. Therefore, I am closing this issue.

sebaJoSt commented 5 months ago

@MikhailSuendukov My bridged app with the newest version of v5.0.4 does not show up in appcenter at all, neither analytic events nor crashes. With 5.0.3 at least events worked

<OutputType>WinExe</OutputType>
<TargetFramework>net8.0-windows10.0.19041.0</TargetFramework>
<UseWPF>true</UseWPF>
MikhailSuendukov commented 5 months ago

@sebaJoSt Thank you for reaching out to us. Yesterday, we experienced issues with the Analytics service. Could you please try testing your application again using AppCenter .NET SDK version 5.0.4?

sebaJoSt commented 5 months ago

I already tried again. My app update with 5.0.4 was released on June 4th and it still not appeared in AppCenter.

MikhailSuendukov commented 5 months ago

@sebaJoSt I tried to reproduce this issue on 5.0.4 version, but everything works as expected for me, it would be useful if you could provide a simple demo application that reproduces this error and repro steps for it.

sebaJoSt commented 5 months ago

@MikhailSuendukov Thanks for your help. I just downgraded to 5.0.3 and published the app update in Microsoft Store and analytics are back! Unfortunately I'm busy with other topics and can't give support to reproduce this.

MikhailSuendukov commented 5 months ago

@sebaJoSt Verbose logs from your application can greatly assist us too. When you have a moment, could you please provide these logs? To enable verbose logging, set the log level as shown below before invoking the AppCenter.Start function: AppCenter.LogLevel = LogLevel.Verbose;

sebaJoSt commented 5 months ago

@MikhailSuendukov Here's verbose output of 5.0.5. Nothing is appearing in Log FLow with this version. Going back to 5.0.3 and the events appear. Debug_5_0_5.txt

MikhailSuendukov commented 5 months ago

@sebaJoSt Judging by your logs, events are successfully sent to the service. To further investigation, we will need a simple demo application that reproduces this error and repro steps for it.