Can't debug Failed Shortcut Intent Launch.

I've been trying to use the console to debug a problem with my SiriKit Intent which I added to launch my app from short cuts. The Log messages are as follows:
Code Block
error 21:39:20.087846-0400 intents_helper +[INUIImageSizeProvider downscaledPNGImageForImage:size:error:] Non-fatal error: Error Domain=IntentsErrorDomain Code=6009 "Scaled size is larger than image size" UserInfo={NSDebugDescription=Scaled size is larger than image size}
error 21:39:20.090408-0400 Shortcuts -[INCache cacheableObjectForIdentifier:] Unable to find cacheable object with identifier intents-remote-image-proxy:?proxyIdentifier=82C0975C-D3F9-69E5-6F55-7E4EBEE3F41A.png&storageServiceIdentifier=com.apple.Intents.INImageServiceConnection in cache.
error 21:39:20.096812-0400 Shortcuts _INCExtensionManagerFetchMatchingSiriExtensionForIntent_block_invoke_2 Failed to find extension Error Domain=INExtensionMatchingErrorDomain Code=3001 "(null)" UserInfo={ExtensionPointName=com.apple.intents-service}
error 21:39:20.100112-0400 Shortcuts -[WFAction runWithInput:userInterface:parameterInputProvider:variableSource:completionHandler:]_block_invoke Action <WFHandleCustomIntentAction: 0x7f81bec560c0, identifier: com.theapapp.wastedtime.StartMeetingIntent, parameters: 2> finished with error {domain: WFIntentExecutorErrorDomain, code: 100}. Error Domain=WFIntentExecutorErrorDomain Code=100 "There was a problem with the app." UserInfo={NSUnderlyingError=0x6000020fecd0 {Error Domain=INExtensionMatchingErrorDomain Code=3001 "(null)" UserInfo={ExtensionPointName=com.apple.intents-service}}, NSLocalizedFailureReason=Could not run Start a meeting, NSLocalizedDescription=There was a problem with the app.}
error 21:39:20.134294-0400 intents_helper bundleProxyForPID No bundleProxy for bundleURL=file:///Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/usr/libexec/
error 21:39:20.185873-0400 coreduetd error in setObject {
    DKObjUUID = "ABF04557-70CC-4257-915F-834F529DCB8B";
    class = INRunWorkflowIntent;
    direction = 0;
    donatedBySiri = 0;
    handlingStatus = 0;
    sourceBundleID = "com.apple.shortcuts";
    sourceItemID = "FC884509-AE97-4BAB-97C8-B7B8CFFAC879";
    type = Workflow;
    verb = RunWorkflow;
} for keyPath /device/intents/dataDictionary : Error Domain=NSCocoaErrorDomain Code=4099 "The connection to service on pid 0 named com.apple.coreduetd.context was invalidated." UserInfo={NSDebugDescription=The connection to service on pid 0 named com.apple.coreduetd.context was invalidated.}


My App has an intent handler that calls that intent as follows:

Code Block    
override func handler(for intent: INIntent) -> Any {
        logger.log("\(intent)")
        switch intent {
        case is StartMeetingIntent:
            return StartMeetingIntentHandler()
        default:
            fatalError("No handler for this intent")
        }
    }
    


And my Intent is defined as follows:
Code Block
import Intents
import SwiftUI
import os
class StartMeetingIntentHandler: NSObject, StartMeetingIntentHandling {
    let logger=Logger(subsystem: "com.theapapp.wastedtime", category: "Start Meeting Intent")
    var people: [INObject]?
    func handle(intent: StartMeetingIntent, completion: @escaping (StartMeetingIntentResponse) -> Void) {
        if let attendees = intent.people {
completion(StartMeetingIntentResponse.success(result: attendees))
        } else {
            logger.log("failure")
        }
    }
    func resolvePeople(for intent: StartMeetingIntent, with completion: @escaping (StartMeetingPeopleResolutionResult) -> Void) {
        let people = Int(truncating: intent.people ?? 0)
        if people < 0 {
completion(StartMeetingPeopleResolutionResult.unsupported(forReason: StartMeetingPeopleUnsupportedReason.negativeNumbersNotSupported))
        } else if people > 1000 {
completion(StartMeetingPeopleResolutionResult.unsupported(forReason: StartMeetingPeopleUnsupportedReason.greaterThanMaximumValue))
        } else {
completion(StartMeetingPeopleResolutionResult.success(with: people))
        }
    }
}


In the Build for the extension the Intent is listed under Supported Intents. (as StartMeetingIntent).

And the Extension is embedded in my application.

I am stumped.. so any pointers on what I should look at next would be greatly appreciated. Thanks!

Replies

Is there other data that I need to look at to make sure it is setup correctly?

Please make sure that you have the intent listed under the IntentsSupported key in the NSExtensionAttributes dictionary in the Info.plist file for the extension:

Code Block
<key>NSExtensionAttributes</key>
<dict>
...
<key>IntentsSupported</key>
<array>
<string>YourIntentClassName</string>
</array>
</dict>


Without the listing in the IntentsSupported array in the Info.plist file for your app extension, your intent will not be executed as the system will not find it as valid for execution.



Edit: It looks like I misread your initial issue. Could you file a feedback report with a sysdiagnose and a sample project, and post the FB number here?
Thanks Will post generate a FB and post here later today (in meetings all day :( ). I do have the IntentsSupported in my plist, which I will also post.
Here's the info.plist content and the Feedback number is - FB7834610 ..
Code Block
<key>NSExtension</key>
<dict>
<key>NSExtensionAttributes</key>
<dict>
<key>IntentsRestrictedWhileLocked</key>
<array/>
<key>IntentsRestrictedWhileProtectedDataUnavailable</key>
<array/>
<key>IntentsSupported</key>
<array>
<string>INSearchForMessagesIntent</string>
<string>INSendMessageIntent</string>
<string>StartMeetingIntent</string>
</array>
</dict>
<key>NSExtensionPointIdentifier</key>
<string>com.apple.intents-service</string>
<key>NSExtensionPrincipalClass</key>
<string>$(PRODUCT_MODULE_NAME).IntentHandler</string>
</dict>


and this is in the info.plist for the Extension.
Problem still exists in 2nd Xcode beta
I saw this 3001 when my Intent target version was higher than my device version. I just lowered my intent IPHONEOS_DEPLOYMENT_TARGET version in Build Settings and it worked. Hopefully this helps!
I'm having this same issue, did you ever find a solution Michael?