{"record":{"id":"c98a19b4a98ecf45","repo":"microsoft/semantic-kernel","slug":"no-argument-or-value-is-provided-for-the-paramet","errorCode":null,"errorMessage":"No argument or value is provided for the `{parameter.name}` required parameter of the operation - `{self.id}`.","messagePattern":"No argument or value is provided for the `(.+?)` required parameter of the operation - `(.+?)`\\.","errorType":"exception","errorClass":"FunctionExecutionException","httpStatus":null,"severity":"error","filePath":"python/semantic_kernel/connectors/openapi_plugin/models/rest_api_operation.py","lineNumber":394,"sourceCode":"        target once combined with the server URL, so such a path is excluded during operation selection\n        to keep selection and request construction on one canonical target.\n        \"\"\"\n        if not path:\n            return False\n        if path.startswith((\"//\", \"\\\\\\\\\", \"/\\\\\", \"\\\\/\")):\n            return True\n        parsed = urlparse(path)\n        return bool(parsed.scheme or parsed.netloc)\n\n    def build_query_string(self, arguments: dict[str, Any]) -> str:\n        \"\"\"Build the query string for the operation.\"\"\"\n        segments = []\n        parameters = [p for p in self.parameters if p.location == RestApiParameterLocation.QUERY]\n        for parameter in parameters:\n            argument = arguments.get(parameter.name)\n            if argument is None:\n                if parameter.is_required:\n                    raise FunctionExecutionException(\n                        f\"No argument or value is provided for the `{parameter.name}` \"\n                        f\"required parameter of the operation - `{self.id}`.\"\n                    )\n                continue\n            segments.append((parameter.name, argument))\n        return urlencode(segments)\n\n    def replace_invalid_symbols(self, parameter_name):\n        \"\"\"Replace invalid symbols in the parameter name with underscores.\"\"\"\n        return RestApiOperation.INVALID_SYMBOLS_REGEX.sub(\"_\", parameter_name)\n\n    def get_parameters(\n        self,\n        operation: \"RestApiOperation\",\n        add_payload_params_from_metadata: bool = True,\n        enable_payload_spacing: bool = False,\n    ) -> list[\"RestApiParameter\"]:\n        \"\"\"Get the parameters for the operation.\"\"\"","sourceCodeStart":376,"sourceCodeEnd":412,"githubUrl":"https://github.com/microsoft/semantic-kernel/blob/c028a0c7dc4f0814cdcbaba9d998f187a41197bf/python/semantic_kernel/connectors/openapi_plugin/models/rest_api_operation.py#L376-L412","documentation":"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.","triggerScenarios":"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`.","commonSituations":"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.","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."],"exampleFix":"// before (missing required 'limit' query param)\nawait api.list_items()\n// after\nawait api.list_items(limit=10)","handlingStrategy":"validation","validationCode":"def validate_required_query_params(operation, arguments: dict):\n    required = [p.name for p in operation.parameters\n                if p.location == RestApiParameterLocation.QUERY and p.is_required]\n    missing = [p for p in required if arguments.get(p) is None]\n    if missing:\n        raise ValueError(f\"Missing required query parameters: {missing}\")","typeGuard":null,"tryCatchPattern":"try:\n    result = await api.my_operation(**args)\nexcept FunctionExecutionException as e:\n    if \"required parameter\" in str(e):\n        # supply the missing query parameter value\n        ...","preventionTips":["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."],"tags":["openapi","rest-api","query-parameters","required-parameter","semantic-kernel"],"backgroundTag":null,"analyzedSha":"c028a0c7dc4f0814cdcbaba9d998f187a41197bf","analyzedAt":"2026-08-13T13:48:05.040Z","schemaVersion":2},"datasetVersion":"2026-08-13T14:17:21.547Z"}