AppIntent parameter value can't include words like "recent" or "last" when collected with requestValueDialog by Siri?

We have a simple AppIntent to let users ask a question in our app.

The intent has a single parameter: Prompt which is retrieved by a requestValueDialog.

Users have reported that when using Siri, the dialog for "What would you like to ask?" appears, but if they respond with phrases such as "What is the last album by Sting" it just presents the dialog for the prompt again.

Testing it, I find that I can reproduce the behavior if I include words like "recent" or "last". Just providing those words in isolation causes the dialog to be presented over and over again.

Using the same intent from Shortcuts does not seem to have that limitation, it's only when providing the spoken words for speech recognition.

All of that interaction happens outside our code, so I cant see any way to debug or identify why the prompts are being rejected. Is there a different way to specify the @Parameter to indicate the prompt: String could include any arbitrary text - including "recent" or "last" ?

My hunch is those words are triggering a system response that is stepping on the requstValueDialog?

Here's the basics of how the intent and parameter are setup:

struct AskAI: AppIntent {
    static var title: LocalizedStringResource = "Ask"
    static var description: IntentDescription = IntentDescription("This will ask the A.I. app")
    static var openAppWhenRun = false
    
    @Parameter(title: "Prompt", description: "The prompt to send", requestValueDialog: IntentDialog("What would you like to ask?"))
    var prompt: String
    
    @MainActor
    func perform() async throws -> some IntentResult & ProvidesDialog & ShowsSnippetView {
        var response = ""
...
        response = "You asked: \"\(prompt)\"  \n"
...
        return .result(dialog: "\(response)")
    }
    
    static var parameterSummary: some ParameterSummary {
        Summary("Ask \(\.$prompt)")
    }
}

Replies

Here is a quick video showing the behavior:

https://youtube.com/shorts/v2j51T7Kdxw

In the clip, the user starts the ask intent and is prompted for "What would you like to ask?"

They say "What's the most recent album from Sting" and it prompts them again. Then they say "What's the last album from Tame Impala" and it prompts them again. Finally they say "Is this thing on" which the system accepts and hands off to our code as the prompt parameter.

I tried to request Apple Developer Technical Support with at Technical Support Incident, but they responded saying I should create an entry in the Feedback Assistant. Which I have done:

https://feedbackassistant.apple.com/feedback/12185568

I've also gone back through the documentation and WWDC videos but nothing I've tried (like building a struct to encapsulate the String as an entity) has changed the behavior.

From the tone of the TDI response I'm not really filled with optimism that the issue in the feedback system will bubble up into the attention of anyone working on Siri/AppIntents. But I suppose it could happen?

Users have provided additional examples of filtering by requestValueDialog. I suspect it all boils down to the same thing.

If the user says a phrase such as "Do you think Swift is better than Java" they see that text in the display if they have Settings/ Siri & Search/ Siri Responses/ Always Show Speech enabled. So it's clear that the system recognized the entire phrase.

But the String value that gets provided to the AppIntent is "Swift is better than Java" without the "Do you think" at the start.

requestValueDialog is accepting the user's spoken input in cases like that but it is filtering the String before it gets to the AppIntent.

Our users would very much like to be able to get the prompt to the AppIntent as they have spoken it, without being filtered.