microsoft/semantic-kernel · error · FunctionExecutionException
No argument or value is provided for the `{parameter.name}`
Error message
No argument or value is provided for the `{parameter.name}` required parameter of the operation - `{self.id}`. What it means
When building the query string, `build_query_string` iterates over QUERY-location parameters. For each required query parameter with no argument, this FunctionExecutionException is raised. Optional query parameters without arguments are skipped. This is the query-string analog of the header and path required-parameter checks.
Source
Thrown at python/semantic_kernel/connectors/openapi_plugin/models/rest_api_operation.py:394
target once combined with the server URL, so such a path is excluded during operation selection
to keep selection and request construction on one canonical target.
"""
if not path:
return False
if path.startswith(("//", "\\\\", "/\\", "\\/")):
return True
parsed = urlparse(path)
return bool(parsed.scheme or parsed.netloc)
def build_query_string(self, arguments: dict[str, Any]) -> str:
"""Build the query string for the operation."""
segments = []
parameters = [p for p in self.parameters if p.location == RestApiParameterLocation.QUERY]
for parameter in parameters:
argument = arguments.get(parameter.name)
if argument is None:
if parameter.is_required:
raise FunctionExecutionException(
f"No argument or value is provided for the `{parameter.name}` "
f"required parameter of the operation - `{self.id}`."
)
continue
segments.append((parameter.name, argument))
return urlencode(segments)
def replace_invalid_symbols(self, parameter_name):
"""Replace invalid symbols in the parameter name with underscores."""
return RestApiOperation.INVALID_SYMBOLS_REGEX.sub("_", parameter_name)
def get_parameters(
self,
operation: "RestApiOperation",
add_payload_params_from_metadata: bool = True,
enable_payload_spacing: bool = False,
) -> list["RestApiParameter"]:
"""Get the parameters for the operation."""View on GitHub (pinned to c028a0c7dc)
Solutions
- Provide a value for every required query parameter named in the error message.
- Review the OpenAPI spec for all query parameters with `required: true` and supply each at call time.
- If the parameter should be optional, correct the OpenAPI spec's `required` field.
Example fix
// before (missing required 'limit' query param) await api.list_items() // after await api.list_items(limit=10)
Defensive patterns
Strategy: validation
Validate before calling
def validate_required_query_params(operation, arguments: dict):
required = [p.name for p in operation.parameters
if p.location == RestApiParameterLocation.QUERY and p.is_required]
missing = [p for p in required if arguments.get(p) is None]
if missing:
raise ValueError(f"Missing required query parameters: {missing}") Try / catch
try:
result = await api.my_operation(**args)
except FunctionExecutionException as e:
if "required parameter" in str(e):
# supply the missing query parameter value
... Prevention
- Provide values for all required query parameters before invoking.
- Review the spec for all query parameters with required: true.
- Watch for camelCase vs snake_case mismatches in parameter names.
When it happens
Trigger: Invoking an operation where a required query parameter (e.g. `?limit={limit}`) has no corresponding argument in the arguments dict. The caller omits a value for a query parameter marked `required: true`.
Common situations: Forgetting to pass a required query parameter like `limit`, `page`, or `fields`. Parameter name mismatch (camelCase vs snake_case). Assuming a query parameter is optional when the spec marks it required.
Related errors
- No argument is provided for the `{parameter.name}` required
- The `RestApiOperation` instance with id {self.id} is frozen
- Error building the URL for the operation {self.id}: {e!s}
- The operation path resolves to '{request.scheme}://{request.
- The operation path resolves to '{request.path}', which is ou
AI-assisted analysis of microsoft/semantic-kernel@c028a0c7dc (2026-08-13).
Data as JSON: /api/errors/c98a19b4a98ecf45.
Report an issue: GitHub.