Skip to content

UniversalBGTask crashes with STOWED_EXCEPTION #5870

@tipa

Description

@tipa

Describe the bug

I added support for background tasks as described in the documentation: https://learn.microsoft.com/en-us/windows/apps/windows-app-sdk/applifecycle/background-tasks

It works for most users, but I am seeing a lot of crash reports (in the Partner Center) for all my apps published in the Microsoft Store that are using background tasks.
With WinAppSDK 1.7, it was mostly ACCESS_VIOLATION errors and they have been discussed in this issue (which for some reason has been moved to the microsoft/microsoft-ui-xaml repository).

Now, after upgrading to WinAppSDK 1.8, I am still seeing crashes (seemingly the same amount - way over 10.000 crashes per day!), but with error code STOWED_EXCEPTION. Since the amount of crashes exceeds the "devices affected", it looks like the crash is happening repeatedly for the same machines.

Here are some stack traces as reported by the Microsoft Partner Center:

STOWED_EXCEPTION_80004005_Microsoft.Windows.ApplicationModel.Background.UniversalBGTask.dll!_CallSettingFrame_LookupContinuationIndex

Frame  Image                                                                 Function
0      combase.dll                                                           RoOriginateLanguageException
1      Microsoft.Windows.ApplicationModel.Background.UniversalBGTask.dll     winrt::hresult_error::originate
2      Microsoft.Windows.ApplicationModel.Background.UniversalBGTask.dll     `winrt::to_hresult'::`1'::catch$23
3      Microsoft.Windows.ApplicationModel.Background.UniversalBGTask.dll     _CallSettingFrame_LookupContinuationIndex
4      Microsoft.Windows.ApplicationModel.Background.UniversalBGTask.dll     __FrameHandler4::CxxCallCatchBlock
5      ntdll.dll                                                             RcFrameConsolidation
6      Microsoft.Windows.ApplicationModel.Background.UniversalBGTask.dll     winrt::to_hresult
7      Microsoft.Windows.ApplicationModel.Background.UniversalBGTask.dll     `winrt::impl::root_implements_winrt::Microsoft::Windows::ApplicationModel::Background::UniversalBGTask::factory_implementation::Task,winrt::Windows::Foundation::IActivationFactory_::NonDelegatingGetTrustLevel'::`1'::catch$0
8      Microsoft.Windows.ApplicationModel.Background.UniversalBGTask.dll     _CallSettingFrame_LookupContinuationIndex
9      Microsoft.Windows.ApplicationModel.Background.UniversalBGTask.dll     __FrameHandler4::CxxCallCatchBlock
10     ntdll.dll                                                             RcFrameConsolidation
11     Microsoft.Windows.ApplicationModel.Background.UniversalBGTask.dll     winrt::impl::produce_winrt::Microsoft::Windows::ApplicationModel::Background::UniversalBGTask::implementation::Task,winrt::Windows::ApplicationModel::Background::IBackgroundTask_::Run
12     biwinrt.dll                                                           Windows::ApplicationModel::Background::CBackgroundTaskInstance::RunInternal
13     biwinrt.dll                                                           Windows::ApplicationModel::Background::CBackgroundTaskInstance::Run
14     twinapi.appcore.dll                                                   Windows::ApplicationModel::Core::BackgroundTaskWrapper::ThreadProc
15     ntdll.dll                                                             TppWorkpExecuteCallback
16     ntdll.dll                                                             TppWorkerThread
17     kernel32.dll                                                          BaseThreadInitThunk
18     ntdll.dll                                                             RtlUserThreadStart
STOWED_EXCEPTION_80004002_Microsoft.Windows.ApplicationModel.Background.UniversalBGTask.dll!winrt::Microsoft::Windows::ApplicationModel::Background::UniversalBGTask::implementation::Task::Run

Frame  Image                                                                 Function
0      combase.dll                                                           RoOriginateLanguageException
1      Microsoft.Windows.ApplicationModel.Background.UniversalBGTask.dll     winrt::hresult_error::originate
2      Microsoft.Windows.ApplicationModel.Background.UniversalBGTask.dll     winrt::hresult_no_interface::hresult_no_interface
3      Microsoft.Windows.ApplicationModel.Background.UniversalBGTask.dll     winrt::Microsoft::Windows::ApplicationModel::Background::UniversalBGTask::implementation::Task::Run
4      Microsoft.Windows.ApplicationModel.Background.UniversalBGTask.dll     winrt::impl::produce_winrt::Microsoft::Windows::ApplicationModel::Background::UniversalBGTask::implementation::Task,winrt::Windows::ApplicationModel::Background::IBackgroundTask_::Run
5      biwinrt.dll                                                           Windows::ApplicationModel::Background::CBackgroundTaskInstance::RunInternal
6      biwinrt.dll                                                           Windows::ApplicationModel::Background::CBackgroundTaskInstance::Run
7      twinapi.appcore.dll                                                   Windows::ApplicationModel::Core::BackgroundTaskWrapper::ThreadProc
8      ntdll.dll                                                             TppWorkpExecuteCallback
9      ntdll.dll                                                             TppWorkerThread
10     kernel32.dll                                                          BaseThreadInitThunk
11     ntdll.dll                                                             RtlUserThreadStart
STOWED_EXCEPTION_80004005_Microsoft.Windows.ApplicationModel.Background.UniversalBGTask.dll!Unknown

Frame  Image                                                                 Function
0      combase.dll                                                           RoOriginateLanguageException
1      Microsoft.Windows.ApplicationModel.Background.UniversalBGTask.dll     -
2      Microsoft.Windows.ApplicationModel.Background.UniversalBGTask.dll     -
3      Microsoft.Windows.ApplicationModel.Background.UniversalBGTask.dll     -
4      Microsoft.Windows.ApplicationModel.Background.UniversalBGTask.dll     -
5      ntdll.dll                                                             RcFrameConsolidation
6      Microsoft.Windows.ApplicationModel.Background.UniversalBGTask.dll     -
7      Microsoft.Windows.ApplicationModel.Background.UniversalBGTask.dll     -
8      Microsoft.Windows.ApplicationModel.Background.UniversalBGTask.dll     -
9      Microsoft.Windows.ApplicationModel.Background.UniversalBGTask.dll     -
10     ntdll.dll                                                             RcFrameConsolidation
11     Microsoft.Windows.ApplicationModel.Background.UniversalBGTask.dll     -
12     biwinrt.dll                                                           -
13     biwinrt.dll                                                           -
14     twinapi.appcore.dll                                                   Windows::ApplicationModel::Core::BackgroundTaskWrapper::ThreadProc
15     ntdll.dll                                                             TppWorkpExecuteCallback
16     ntdll.dll                                                             TppWorkerThread
17     kernel32.dll                                                          BaseThreadInitThunk
18     ntdll.dll                                                             RtlUserThreadStart
STOWED_EXCEPTION_800706ba_Microsoft.Windows.ApplicationModel.Background.UniversalBGTask.dll!winrt::Microsoft::Windows::ApplicationModel::Background::UniversalBGTask::implementation::Task::Run

Frame  Image                                                                 Function
0      combase.dll                                                           RoOriginateLanguageException
1      Microsoft.Windows.ApplicationModel.Background.UniversalBGTask.dll     winrt::hresult_error::originate
2      Microsoft.Windows.ApplicationModel.Background.UniversalBGTask.dll     winrt::hresult_error::hresult_error
3      Microsoft.Windows.ApplicationModel.Background.UniversalBGTask.dll     winrt::throw_hresult
4      Microsoft.Windows.ApplicationModel.Background.UniversalBGTask.dll     winrt::Microsoft::Windows::ApplicationModel::Background::UniversalBGTask::implementation::Task::Run
5      Microsoft.Windows.ApplicationModel.Background.UniversalBGTask.dll     winrt::impl::produce_winrt::Microsoft::Windows::ApplicationModel::Background::UniversalBGTask::implementation::Task,winrt::Windows::ApplicationModel::Background::IBackgroundTask_::Run
6      biwinrt.dll                                                           Windows::ApplicationModel::Background::CBackgroundTaskInstance::RunInternal
7      biwinrt.dll                                                           Windows::ApplicationModel::Background::CBackgroundTaskInstance::Run
8      twinapi.appcore.dll                                                   Windows::ApplicationModel::Core::BackgroundTaskWrapper::Run
9      twinapi.appcore.dll                                                   Windows::ApplicationModel::Core::BackgroundTaskWrapper::ThreadProc
10     ntdll.dll                                                             TppWorkpExecuteCallback
11     ntdll.dll                                                             TppWorkerThread
12     kernel32.dll                                                          BaseThreadInitThunk
13     ntdll.dll                                                             RtlUserThreadStart

NuGet package version

Windows App SDK 1.8.1: 1.8.250916003

Packaging type

Packaged (MSIX)

Windows version

Windows 11 version 24H2 LTSC (26100, June Update)

IDE

Visual Studio 2022

Additional context

Crashes happen on various Windows versions, e.g. Windows 11 10.0.26100, Windows 11 10.0.22631, Windows 10 10.0.19045, ...

Metadata

Metadata

Assignees

No one assigned

    Labels

    area-BackgroundTaskTopics related to Microsoft.Windows.ApplicationModel.Background APIs in Windows App SDKneeds-triage

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions