Crash on CarPlay in iOS 27 | Community
Skip to main content
Answered

Crash on CarPlay in iOS 27

  • June 15, 2026
  • 3 replies
  • 199 views

Bug Report: Unrecognized selector sent to CPTemplateApplicationScene (CarPlay) — iOS 27

 

Summary

 

The Intercom iOS SDK crashes the host app with an **unrecognized selector** exception when a

CarPlay scene is involved in scene lifecycle. Intercom sends a `UIWindowScene`-only selector to

`CPTemplateApplicationScene`, which is a sibling of `UIWindowScene`, not a subclass — so the

message is unhandled and the app terminates.

 

This is the same long-standing defect previously reported as

`-[CPTemplateApplicationScene windows]: unrecognized selector`

(

 

and 

)

On **iOS 27** the selector has changed to a different `UIWindowScene`-only API:

 

-[CPTemplateApplicationScene _enhancedWindowingEnabled]: unrecognized selector sent to instance

 

Environment

 

Intercom SDK | 19.3.2 (intercom-ios-sp, SPM). Also reproduces on latest 19.6.3 — updating does not fix it.

iOS 27 (also historically reproduced on earlier iOS with the `windows` selector variant)

SwiftUI/UIKit app with a separate CarPlay scene (`CPTemplateApplicationSceneDelegate`)

`Intercom.setApiKey(_:forAppId:)` in `application(_:didFinishLaunchingWithOptions:)`

 

Crash signature

 

-[CPTemplateApplicationScene _enhancedWindowingEnabled]: unrecognized selector sent to instance

 

Captured via Bugsnag in production, unhandled.

 

Root cause (our analysis)

 

1. Intercom is initialized at app launch and subscribes to scene lifecycle notifications globally,

   before any scene has connected.

2. When a scene enters the foreground, Intercom's presentation manager

   (`ICMPresentationManager` `sceneWillEnterForeground:`) attempts to create its Messenger window in

   whatever scene is entering foreground via `createIntercomWindowInScene:` →

   `-[UIWindow setWindowScene:]`.

3. Somewhere in that window-attachment path, a `UIWindowScene`-only selector is queried on the

   scene. When the scene is the **CarPlay** `CPTemplateApplicationScene`, that selector is

   unimplemented and the app crashes.

 

The defect is that Intercom assumes every foregrounding scene is a normal app `UIWindowScene` it can

attach a window to. It does not guard against non-`UIWindowScene` scene types such as

`CPTemplateApplicationScene`.

 

Reproduction

 

1. Initialize Intercom at launch in `application(_:didFinishLaunchingWithOptions:)`.

2. Add a CarPlay scene (`CPTemplateApplicationSceneDelegate`) to the app.

3. Connect to CarPlay (head unit or the CarPlay simulator), particularly while a foreground

   notification can fire / while the CarPlay scene transitions to foreground.

4. The app crashes with the unrecognized-selector exception above.

 

Expected behavior

 

Intercom should only ever create/attach its Messenger window to a `UIWindowScene`. It should

ignore scenes whose class is not a `UIWindowScene` (e.g. `CPTemplateApplicationScene`), or expose a

public API to scope its presentation to a specific app `UIWindowScene`.

 

Current workaround (on our side)

 

We shim the missing selectors on `CPTemplateApplicationScene` so the message resolves to a no-op

instead of crashing:

 

extension CPTemplateApplicationScene {

    @objc var windows: UIWindow? { nil }                 // older selector variant

    @objc var _enhancedWindowingEnabled: Bool { false }  // iOS 27 selector variant

}

 

This relies on private selector names and guesses at the contract, so it is a stopgap, NOT a fix.

Each new iOS release that changes the queried selector breaks us again until we add another shim.

 

Requests

 

1. Add a scene-type guard so Intercom never attempts window attachment on a non-`UIWindowScene`.

2. Please add us to the existing internal issue tracking this; it has been acknowledged by Intercom

   support previously but appears unresolved across the 19.x line.

Best answer by Sean Meade Forum Support Lead

Hi there, Just wanted to update anyone that came to this post with similar issues that a fix was shipped in SDK 19.5.4 that added scene-type guards to prevent the SDK from interacting with non-UIWindowScene scenes like CPTemplateApplicationScene.


That fix specifically addressed the original variant with the windows selector, so updating to this version (or recommended the latest version) will solve this issue! Thanks again for raising this ​@Hallow Developers!

3 replies

Karla T
Intercom Team
Forum|alt.badge.img+2
  • Intercom Team
  • June 21, 2026

Hi ​@Hallow Developers 👋  Karla here from the community team here! I’m going to create a conversation with our support team so they can take a closer look and investigate further with you. They’ll be able to dig into this issue. Keep an eye out for a follow-up from the team.


Forum|alt.badge.img+6

Hi there, Just wanted to update anyone that came to this post with similar issues that a fix was shipped in SDK 19.5.4 that added scene-type guards to prevent the SDK from interacting with non-UIWindowScene scenes like CPTemplateApplicationScene.


That fix specifically addressed the original variant with the windows selector, so updating to this version (or recommended the latest version) will solve this issue! Thanks again for raising this ​@Hallow Developers!


Just stopping by to confirm that this did resolve the issue. Thank you!