App with shallow depth entitlement not appearing in Auto-Launch > When Submerged

I'm building a freediving app for Apple Watch Ultra using the shallow depth entitlement (com.apple.developer.submerged-shallow-depth-and-pressure).

My app uses WKExtendedRuntimeSession with the underwater-depth background mode, and it works correctly — the session starts, Water Lock activates automatically, and Crown hold water ejection ends the session as expected.

However, the app does not appear in Settings > General > Auto-Launch > When Submerged on the watch. Other third-party apps (including one that hasn't been updated in ~2 years and presumably only has the shallow entitlement) do appear in this list.

My configuration:

  • WKBackgroundModes: ["underwater-depth", "workout-processing"]
  • WKSupportsAutomaticDepthLaunch: true (Boolean, in watch app Info.plist)
  • Entitlement verified in both the signed binary and provisioning profile
  • watchOS 26.3, Apple Watch Ultra 2

Tested with: development build, TestFlight, and direct Xcode deploy. Watch restarted after each. The app does not appear in any case.

The documentation at https://developer.apple.com/documentation/coremotion/accessing-submersion-data states: "Adding the underwater-depth Background Mode capability also adds your app to the list of apps that the system can autolaunch when the wearer submerges the watch."

Does auto-depth-launch require the full depth entitlement (com.apple.developer.submerged-depth-and-pressure), or should the shallow entitlement be sufficient? Is there an additional step required for the app to appear in the When Submerged list?

Any guidance appreciated.

I saw the same issue on my Apple Watch Ultra 2 + watchOS 11.3 (22S555), as mentioned here. I haven't yet tried with watchOS 26, but if you follow the documentation to add underwater-depth background mode in your Info.plist, and the issue is still there, I’d suggest that you file a feedback report – If you do so, please share your report ID here. Thanks.

Best,
——
Ziqiao Chen
 Worldwide Developer Relations.

Accepted Answer

Hi Ziqiao,

Thank you for confirming the issue. I've filed a Feedback Report as suggested: FB22384792

I'm also experiencing this on Apple Watch Ultra 2 with the latest watchOS. My configuration matches the documentation exactly (WKBackgroundModes with underwater-depth, WKSupportsAutomaticDepthLaunch = true, shallow depth entitlement).

I've referenced the original thread (https://developer.apple.com/forums/thread/773542) and feedback report FB16448625 in my submission.

Would appreciate any updates from the watchOS team. This is blocking a key feature for our freediving app launch.

Thanks, Alexis

I found a solution.

On Apple Watch Ultra, WKBackgroundModes = underwater-depth and the shallow-depth entitlement weren’t sufficient. Add a StartDiveIntent directly to the watch app target:

import AppIntents
 
struct StartAppDiveIntent: StartDiveIntent {
    static let title: LocalizedStringResource = "Start App
    static var openAppWhenRun: Bool { true }
 
    func perform() async throws -> some IntentResult {
        .result()
    }
}

Then call WKExtendedRuntimeSession.requestAutoLaunchAuthorizationStatus only after the app is fully foreground-active. Without the intent, Ultra returns error 10; calling too early returns error 9. No full-depth entitlement or WKSupportsAutomaticDepthLaunch key is needed. The Simulator cannot validate this - test on physical hardware.

App with shallow depth entitlement not appearing in Auto-Launch > When Submerged
 
 
Q