SiriKit stopped using Siri Dialog prompts (iOS13.1)

I'm losing my mind over this issue. I have been working with Siri Intents for a few days, and (rough patches aside) it's been working fine, and I'm using 'conversational' Siri to good effect. I tweaked a couple of intents yesterday, and then added a couple of new intents as well, and tested with the Shortcuts app, and they worked just fine.


Today I tested the same functionality with Siri dialogs, and it's not working as expected. Basically, it ignores the "Siri Dialog Prompt" setting from the intents definition file, and instead gives me a generic "What should <variablename> be?". I want it to say something else (like "What should the list say?") but it ignores that. It even speaks out the variable name from intentsdefinition file, and not the 'display name'.


Things I've tried:

- added new intents

- tried this on 2 different devices (including rebooting the device, doing clean builds and deleting derived data)

- created a new intents definition file and copy-pasted the intents

- created a new intents definition file and made the intents again from scratch

- created a whole new project and made the same intent there, and it worked fine!

- the SoupChef example works fine too.


So I'm not sure what to try. My guess is something is being cached on either my development machine, or my device. I checked something in the device logs, and these snippets seem relevant:


default 20:15:44.847013 -0700 ShortcutsIntents -[WFBundledActionProvider createActionsForRequests:] Found actions: (
)
default 20:15:44.847107 -0700 ShortcutsIntents -[ICAppRegistry _appsWithIdentifiers:] Loading apps: {(
    "com.zaal.TestingSiriShortcuts"
)}
error 20:15:44.851819 -0700 ShortcutsIntents -[ICAppRegistry _appsWithIdentifiers:] Failed to load a definition for com.zaal.TestingSiriShortcuts
error 20:15:45.071015 -0700 ShortcutsIntents Couldn't read values in CFPrefsPlistSource<0x101133f20> (Domain: group.is.workflow.my.app, User: kCFPreferencesAnyUser, ByHost: Yes, Container: (null), Contents Need Refresh: Yes): Using kCFPreferencesAnyUser with a container is only allowed for System Containers, detaching from cfprefsd


also:


default 20:15:45.165129 -0700 runningboardd Assertion 24-300-241 (target:xpcservice) will be created as active
error 20:15:45.193307 -0700 ShortcutsIntents -[WFRemoteQuarantinePolicyManager latestRemotePolicyAssetBundle] Encountered an error while trying to access asset bundles directory (file:///var/mobile/Library/Shortcuts/QuarantineAsset). Error: Error Domain=NSCocoaErrorDomain Code=260 "The file “QuarantineAsset” couldn’t be opened because there is no such file." UserInfo={NSURL=file:///var/mobile/Library/Shortcuts/QuarantineAsset, NSFilePath=/var/mobile/Library/Shortcuts/QuarantineAsset, NSUnderlyingError=0x10129d120 {Error Domain=NSPOSIXErrorDomain Code=2 "No such file or directory"}}
error 20:15:45.196302 -0700 ShortcutsIntents -[WFRemoteQuarantinePolicyManager latestRemotePolicyAssetBundle] Encountered an error while trying to access asset bundles directory (file:///var/mobile/Library/Shortcuts/QuarantineAsset). Error: Error Domain=NSCocoaErrorDomain Code=260 "The file “QuarantineAsset” couldn’t be opened because there is no such file." UserInfo={NSURL=file:///var/mobile/Library/Shortcuts/QuarantineAsset, NSFilePath=/var/mobile/Library/Shortcuts/QuarantineAsset, NSUnderlyingError=0x10114f140 {Error Domain=NSPOSIXErrorDomain Code=2 "No such file or directory"}}
default 20:15:45.196843 -0700 runningboardd Calculated state for xpcservice: running-active (role: UserInteractiveNonFocal)
default 20:15:45.197044 -0700 runningboardd Finished acquiring assertion 24-300-241 (target:xpcservice)
error 20:15:45.198912 -0700 ShortcutsIntents -[WFRemoteQuarantinePolicyManager latestRemotePolicyAssetBundle] Encountered an error while trying to access asset bundles directory (file:///var/mobile/Library/Shortcuts/QuarantineAsset). Error: Error Domain=NSCocoaErrorDomain Code=260 "The file “QuarantineAsset” couldn’t be opened because there is no such file." UserInfo={NSURL=file:///var/mobile/Library/Shortcuts/QuarantineAsset, NSFilePath=/var/mobile/Library/Shortcuts/QuarantineAsset, NSUnderlyingError=0x10129ffa0 {Error Domain=NSPOSIXErrorDomain Code=2 "No such file or directory"}}
default 20:15:45.210596 -0700 ShortcutsIntents -[WFAction runWithInput:userInterface:parameterInputProvider:variableSource:completionHandler:] Action  started running


And this:


default 20:15:47.162702 -0700 runningboardd Finished acquiring assertion 24-23-243 (target:xpcservice)
default 20:15:47.181866 -0700 FastAddContactSiriIntentsiExtension TestNameForTestIntentWithName - name is empty, 'needs value'
default 20:15:47.248839 -0700 runningboardd Calculated state for xpcservice: running-active (role: UserInteractiveNonFocal)
default 20:15:47.781817 -0700 symptomsd CFSM dynamic blacklist unrecognized com.apple.WorkflowKit.ShortcutsIntents (app: , state: 1)
default 20:15:47.782960 -0700 symptomsd CFSM dynamic blacklist returning (value/reason/headroom/overdraft): {
    "com.apple.AppPredictionWidget.extension" = 0;
    "com.apple.WorkflowKit.ShortcutsIntents" = 0;
    "com.apple.shortcuts" = 1;
    "com.apple.siri" = 1;
    "com.zaal.TestingSiriShortcuts" = 0;
}/{
    "com.apple.AppPredictionWidget.extension" = AppUnknown;
    "com.apple.WorkflowKit.ShortcutsIntents" = AppUnknown;
    "com.apple.shortcuts" = WithinAllowance;
    "com.apple.siri" = WithinAllowance;
    "com.zaal.TestingSiriShortcuts" = AppBlacklisted;
}/{
    "com.apple.shortcuts" = 0;
    "com.apple.siri" = 0;
}/{
}


It's unfortunate that the system is so opaque, but it feels like something has caused my app to be 'blacklisted', which could well be part of the problem (or not).

Hopefully someone from Apple's universe can comment on this, and help me get past this stage that I'm stuck with now.

Accepted Reply

To reiterate the information @jeffhunterx received from our SiriKit engineering team, please consider the following things to address this issue in your app:

  1. Localize your intent definition file to all languages that your app supports
  2. Ensure that your Xcode project identifies localizations by the ISO 639-1 language identifier scheme (additional information on the schemes). Older Xcode projects may use a different language identification scheme and should be updated.
  3. If your app has not yet been localized, ensure that the selected Siri language in Settings matches the CFBundleDevelopmentRegion of your Xcode project, and the value of this key is in ISO 639-1 format

Replies

I'm currently facing exactly the same issue 😐

How many devices have you tried it on? It's not working correctly on both my 2 test devices, and I'm wondering if it's worth getting another test device and trying on that.

I am experiencing the same issue with my app. No matter what I do, Siri will not use my custom voice prompt, and just says, "What should <variablename> be?"


I created a test project with an identical Intent definition file, and the custom voice prompt *does* get used in the test project. I've tried to make the test project and my actual project match each other as closely as possible, but no matter what I do, the test project works and my actual project will not work. I've even gone so far as to copy the Intent definition file from one project to another, so the Intent definition file is *exactly* the same across the 2 projects.


I'm really at my wits' end on this one. Please let me know if you discover any solution, and I will do the same.

I am having similar issue but with the packet-tunnel application:


Sep 19 15:03:14 JohnD-iPad symptomsd(SymptomEvaluator)[112] <Notice>: CFSM dynamic blacklist: app com.iboss.bundleIndentifier denied (background/audio/plan): 1/0/1

Sep 19 15:03:14 JohnD-iPad symptomsd(SymptomEvaluator)[112] <Notice>: CFSM dynamic blacklist: app com.apple.mobilesafari exception, will eval usage (background/audio/plan): 1/1/1

Sep 19 15:03:14 JohnD-iPad symptomsd(SymptomEvaluator)[112] <Notice>: CFSM dynamic blacklist for app: com.apple.mobilesafari, state: 1, (wifi/cell/rnf/jumbo/allflows/headroom/overdraft) 102282389/0/0/0/1735/0/0, allow, code: WithinAllowance

Sep 19 15:03:14 JohnD-iPad symptomsd(SymptomEvaluator)[112] <Notice>: CFSM dynamic blacklist unrecognized com.apple.UpNextWidget.extension (app: <null>, state: 2)

Sep 19 15:03:14 JohnD-iPad symptomsd(SymptomEvaluator)[112] <Notice>: CFSM dynamic blacklist unrecognized com.apple.WebKit.WebContent (app: <null>, state: 2)

Sep 19 15:03:14 JohnD-iPad symptomsd(SymptomEvaluator)[112] <Notice>: CFSM dynamic blacklist unrecognized com.apple.ScreenTimeUI.ScreenTimeWidget (app: <null>, state: 2)

Sep 19 15:03:14 JohnD-iPad symptomsd(SymptomEvaluator)[112] <Notice>: CFSM dynamic blacklist unrecognized com.apple.AppPredictionWidget.extension (app: <null>, state: 2)

Sep 19 15:03:14 JohnD-iPad symptomsd(SymptomEvaluator)[112] <Notice>: CFSM dynamic blacklist for app: com.apple.news, state: 2, (wifi/cell/rnf/jumbo/allflows/headroom/overdraft) 44853/0/0/0/2/0/0, allow, code: WithinAllowance

Sep 19 15:03:14 JohnD-iPad symptomsd(SymptomEvaluator)[112] <Notice>: CFSM dynamic blacklist unrecognized com.apple.WebKit.Networking (app: <null>, state: 1)

Sep 19 15:03:14 JohnD-iPad symptomsd(SymptomEvaluator)[112] <Notice>: CFSM dynamic blacklist returning (value/reason/headroom/overdraft): { "com.apple.AppPredictionWidget.extension" = 0;

"com.apple.ScreenTimeUI.ScreenTimeWidget" = 0;

"com.apple.UpNextWidget.extension" = 0;

"com.apple.WebKit.Networking" = 0;

"com.apple.WebKit.WebContent" = 0;

"com.apple.mobilesafari" = 1;

"com.apple.news" = 1;

"com.iboss.bundleIndentifier" = 0;

}/{

"com.apple.AppPredictionWidget.extension" = AppUnknown;

"com.apple.ScreenTimeUI.ScreenTimeWidget" = AppUnknown;

"com.apple.UpNextWidget.extension" = AppUnknown;

"com.apple.WebKit.Networking" = AppUnknown;

"com.apple.WebKit.WebContent" = AppUnknown;

"com.apple.mobilesafari" = WithinAllowance;

"com.apple.news" = WithinAllowance;

"com.iboss.bundleIndentifier" = AppBlacklisted;

}/{

"com.apple.mobilesafari" = 0;

"com.apple.news" = 0;

}/{

}

It's still stuck on this. My app is on the App Store with the new intents, and even the release version has the same issue (even tested on a brand-new device).

It seems pretty likely that it's a bug in iOS. I filed a ticket in Feedback Assistant about it. FB7294261. The question is, will it be fixed in iOS 13.2, 13.3. 13.4, or ...?

Apple responded to me in Feedback Assistant and I have it working now!!


Here is what they said:


"Does your app have localizations? Are you testing in a locale different than English? Make sure that CFBundleDevelopmentRegion of your app matches Siri language or localize your intent definition file into languages supported by Siri."


This helped me track it down.


The CFBundleDevelopmentRegion of my app target was set to "English". This is a project that has been around for a long time, so it still had an old-style localization name in there. At some point in the last few years, Apple changed the way you're supposed to specify localization names from "English", "French", etc. to "en", "fr-FR", etc. The CFBundleDevelopmentRegion of my other targets was set to "en" in some cases and "$(DEVELOPMENT_LANGUAGE)" in others. (My development language is English.) Changing the CFBundleDevelopmentRegion of my app target from "English" to "en" fixed it, and I started to get the correct conversational prompts from Siri!


Now, of course, if things are broken in this case, then I think Xcode should warn you to update your project settings to get rid of old-style localization names. Also, I was getting the correct conversational prompts from Siri during the early iOS 13.0 betas, so it seems like something did change on the SDK side of things.


But in any case, it is working for me now. Let me know if this helps you!

Please see my response below... Apple responded to me in Feedback Assistant and I have it working now!

To reiterate the information @jeffhunterx received from our SiriKit engineering team, please consider the following things to address this issue in your app:

  1. Localize your intent definition file to all languages that your app supports
  2. Ensure that your Xcode project identifies localizations by the ISO 639-1 language identifier scheme (additional information on the schemes). Older Xcode projects may use a different language identification scheme and should be updated.
  3. If your app has not yet been localized, ensure that the selected Siri language in Settings matches the CFBundleDevelopmentRegion of your Xcode project, and the value of this key is in ISO 639-1 format

Thanks a lot! Changing the "development language" fixed the issue for me as well! I also have a project file that's nearly 10 years old, so I was running into this issue wheras new projects were working fine. And you're right, it was working fine till Beta 4 or 5, so someone did make a change to Xcode / SiriKit that triggered this problem. At least it's resolved (for those people following this thread)!