Visibility and Routing State Around Failure
The visible CarPlay UI is hosted through CarPlayTemplateUIHost.
At 17:26:04, CarPlay is updating and forwarding DadCost1a's hosted CarPlay template scene:
2026-07-02 17:26:04.931693
CarPlay[689]: Updating user interface style ... for scene:
com.apple.DashBoard.scene-workspace.default0:Car[2-89]:
com.apple.CarPlayTemplateUIHost:au.com.philk.DadCost1aus
2026-07-02 17:26:04.943357
CarPlayTemplateUIHost[7789]:
[kCARTemplateUIAppWorkspaceIdentifier(FBSceneManager):Car[2-89]:
au.com.philk.DadCost1aus] Scene activity mode did change: support (transient).
2026-07-02 17:26:04.943387
CarPlayTemplateUIHost[7789]:
[app<au.com.philk.DadCost1aus>:7527] Workspace assertion state did change:
BackgroundActive (acquireAssertion = YES).
2026-07-02 17:26:04.943600
runningboardd[35]: Acquiring assertion targeting
[app<au.com.philk.DadCost1aus>:7527] from originator
[app<com.apple.CarPlayTemplateUIHost>:7789] with description
"FBWorkspace (BackgroundActive)"
2026-07-02 17:26:04.944821
runningboardd[35]: Calculated state for app<au.com.philk.DadCost1aus>:7527:
running-active (role: NonUserInteractive)
2026-07-02 17:26:04.944923
runningboardd[35]: [app<au.com.philk.DadCost1aus>:7527]
Set darwin role to: NonUserInteractive
SpringBoard then sees DadCost1a as not visible/background:
2026-07-02 17:26:04.945164
SpringBoard[36]: Received state update for 7527
(app<au.com.philk.DadCost1aus>, running-active-NotVisible)
2026-07-02 17:26:04.945573
SpringBoard[36]: Application process state changed for au.com.philk.DadCost1aus:
taskState: Running; visibility: Background
Shortly afterward, DadCost1a is suspended/not visible from the SpringBoard/RunningBoard perspective:
2026-07-02 17:26:05.046146
SpringBoard[36]: Received state update for 7527
(app<au.com.philk.DadCost1aus>, running-suspended-NotVisible)
2026-07-02 17:26:05.047372
SpringBoard[36]: Application process state changed for au.com.philk.DadCost1aus:
taskState: Suspended; visibility: Background
The key observation is that the successful handoffs at 17:26:13 and 17:26:17 are routed through CarPlay[689], while the failed handoffs at 17:26:22 and 17:26:24 are routed through SpringBoard[36] and denied using SpringBoard's main-workspace visibility/trust decision.
Why This Does Not Look Like a Data or Maps Availability Issue
The logs show:
Maps is installed and resolvable by LaunchServices.
Maps process 7790 is running around both successful and failed handoffs.
Earlier handoffs from the same DadCost1a process succeed in the same CarPlay session.
The failed handoffs reach SpringBoard and are explicitly denied for security/trust reasons.
There is no DadCost1a crash or Maps crash tied to the failed handoff.
DadCost1a validates the station coordinate before building the URL. If the coordinate were invalid, the code would present the local fallback alert without reaching lsd or SpringBoard.
The failed path receives LSApplicationWorkspaceErrorDomain Code=115, which is consistent with the SpringBoard/FrontBoard denial and not with malformed station data.
Questions for DTS
For a CarPlay fueling app with com.apple.developer.carplay-fueling, what is the recommended API for handing a selected coordinate to Apple Maps from CarPlay?
If the raw maps: URL approach is supported, why would successful requests from the same process be handled by CarPlay[689], while later requests are handled by SpringBoard[36] and denied?
Does calling the CPListItem handler completion immediately after initiating scene.open(...) affect the trusted user-action window? Should the app defer the CPListItem completion until the Maps-open completion handler runs?
If this denial is not expected, is this likely an iOS CarPlay / SpringBoard / FrontBoard bug where the app is user-visible in CarPlay but considered background/not visible by SpringBoard's main workspace?
Topic:
UI Frameworks
SubTopic:
General
Tags: