"No options were provided for this parameter" in Edit Widget menu

I had to create a separate thread for the problem I'm facing with WidgetKit.

Environment:
  • Xcode 12.0.1

  • iOS 14.0

  • App targeting iOS 10

  • Widget targeting iOS 14

  • Intents Extension targeting iOS 10

• I have created Intents Extension.
• Created Intents Definition file in Widget target, added it to all the three targets (app, widget, intents extension). 
• Declared conformance to the intent handling protocol in IntentHandler (Intents Extension).
• Set up Intent Timeline Provider in Widget target. 
• Added Siri to the app capabilities.

If I go to Edit widget -> tap on a dynamic option it says: No options were provided for this parameter.

Intents Extension provides data, but I'm not sure how iOS wires the Intents Extension and widget. From what I see I'm sure that my code inside IntentsHandler.swift is never called.
Post not yet marked as solved Up vote post of Jauzee Down vote post of Jauzee
9.1k views

Replies

Hey Jauzee,

I am facing exactly the same issue.

Fun fact:
It's working in the simulator! For me it's only not working on a physical device!

Did you manage to find the root cause?

Regards
Pascal
My current WidgetKit test project gives exactly this error in iOS 14.0.1, but works in iOS 14.1. Unfortunately the minimum version of my app is iOS 13, so I'm still searching for a solution to make it work in iOS 14.0.1
I my case, it turned out that the minimum version of the Intent Handler target was set to iOS 14.1 by Xcode, while the rest of the project was set to iOS 14.0. After adjusting this, I could run the dynamic configuration panel for the Widget without the "No options were provided for this parameter" error message when testing on iOS 14.0.
I just figured at the same as elemans mentioned!

Make sure that the minimum iOS target version of the Intent Handler Target as well as your main project target match.

I set both now to 14.0 and suddenly it works like a charm on my physical device too.

Got it thanks to this thread:
https://developer.apple.com/forums/thread/655245
I faced the same issue...
it works fine in simulator but unable to run on physical devices

Then I realised I didn't add app groups to corresponding intent handler.
After adding app groups it worked.

Another potential reason for getting this is if in your intent definition file you don't have the 'Intent is eligible for Sir Suggestions' checkbox ticked. Slightly confusing, because you wouldn't think Widgets need that box checked, but if you want to be able to call an Intent Extension that seems to be required

I wasted too much time on this problem, because I missed one very important step. In case it saves someone else some pain, when you provide your widget with dynamic options, you must do that in a separate Intent target in your app. I had just added the IntentHandler straight to the widget extension target, and couldn't figure out why it wasn't working.

Dumb mistake, but also one that leads to the above behavior.

My widgets display this message on the physical device when I try to edit the widget, but not in the Simulator.

Environment:

  • Xcode Version 14.0 beta 3 (14A5270f)
  • App written for iOS 14.0 and watchOS 7.0 onwards
  • iOS Simulator on iOS 16.0 or 15.5
  • Physical iPhone on iOS 15.6

This didn't happen with the app built and deployed via Xcode 13.x to the iPhone.

So, is it an Xcode 14.0b3 issue that stops it working on a physical device with iOS 15.6, and is it fixed by having the iPhone on iOS 16? I can't update my iPhone, but if someone out there has had the same issue and has seen it fixed by using Xcode 14 and iOS 16 on a physical device, that would be helpful to know.

someone dumb this down pls. how can i fix this in my settings?

Just faced this issue and deleting all content in the Derived Data folder plus cleaning the build folder fixed it.

If you're seeing the error message "No options were provided for this parameter" in the Edit Widget menu, it usually means that there's an issue with the parameters that you're trying to pass to the widget.

One possible cause of this issue is that the parameter you're trying to pass doesn't have any options defined. "This could happen if you're trying to use a variable or data source that hasn't been properly configured or initialized."

If you're working with a database like Realm, you may need to check that your database queries are returning the data you expect, this is my case.

Once you've verified that your data sources and variables are set up correctly in your INExtension file, you should be able to pass valid options to your widget and resolve the "No options were provided for this parameter" error.

I've encountered the same issue twice.

The first time is the same as others, the iOS versions of targets don't match.

The second time happens after I merged my intent handler targets into one. I accidentally typed SelectTimerIntent() instead of SelectTimerIntentHandler() when redirecting which handler to use, and the compiler still compiles so it took like an hour to find out after using the breakpoint 😓