watchOS: AppIntents.IntentRecommendation description ignored when applying a .watchface

When we use AppIntents to configure WidgetKit complications, the description we provide in IntentRecommendation is ignored after applying a .watchface file that includes those intent configurations. In the Watch app, under Complications, the labels shown next to each slot do not match the actual complications on the face—they appear to be the first strings returned by recommendations() rather than the selected intent configuration.

Steps to Reproduce

  1. Create an AppIntent used by a WidgetKit complication (e.g., .accessoryRectangular).

  2. Provide multiple intent recommendations with distinct descriptions:

    struct SampleIntent: AppIntent {
        static var title: LocalizedStringResource = "Sample"
        static var description = IntentDescription("Sample data")
    
        @Parameter(title: "Mode") var mode: String
    
        static func recommendations() -> [IntentRecommendation<Self>] {
            [
                .init(intent: .init(mode: "A"), description: "Complication A"),
                .init(intent: .init(mode: "B"), description: "Complication B"),
                .init(intent: .init(mode: "C"), description: "Complication C")
            ]
        }
    
        func perform() async throws -> some IntentResult { .result() }
    }
    
  3. Add two of these complications to a Modular Duo face (or any face that supports multiple slots), each with different intent configurations (e.g., A in one slot, B in another).

  4. Export/share the face to a .watchface file and apply it on another device.

  5. Open the Watch app → the chosen face → Complications.

Expected

Each slot’s label in Complications reflects the specific intent configuration on the face (e.g., “Complication A”, “Complication B”), matching what the complication actually renders.

Actual

The labels under Complications do not match the visible complications. Instead, the strings shown look like the first N items from recommendations(), regardless of which configurations are used in each slot.

Notes

  • The complications themselves render correctly on-watch; the issue is the names/labels displayed in the Watch app UI after applying a .watchface.

Filed Feedback: FB20915258

Answered by DTS Engineer in 865984022

Thanks for asking, but it's Apple's policy that we can't comment on any future product plan.

You can view the current status of your feedback report in Feedback Assistant, and may request the latest status by adding a new comment indicating that you'd like to receive an update. For more details on Feedback Status, please see Understanding the Status of Your Feedback.

Best,
——
Ziqiao Chen
 Worldwide Developer Relations.

Thanks for filing the feedback report (FB20915258) for us. Given that complications render correctly on the watch, it does sound like an issue on the Watch app in iOS.

Best,
——
Ziqiao Chen
 Worldwide Developer Relations.

@DTS Engineer Can you confirm whether FB20915258 will be added to the backlog for a potential fix in a future update? Thank you.

Accepted Answer

Thanks for asking, but it's Apple's policy that we can't comment on any future product plan.

You can view the current status of your feedback report in Feedback Assistant, and may request the latest status by adding a new comment indicating that you'd like to receive an update. For more details on Feedback Status, please see Understanding the Status of Your Feedback.

Best,
——
Ziqiao Chen
 Worldwide Developer Relations.

watchOS: AppIntents.IntentRecommendation description ignored when applying a .watchface
 
 
Q