{"record":{"id":"526305b4149fab3f","repo":"microsoft/semantic-kernel","slug":"the-option-key-bindingtype-storage-service-endp","errorCode":null,"errorMessage":"The option key '{bindingType}.storage_service_endpoint' is required.","messagePattern":"The option key '(.+?)\\.storage_service_endpoint' is required\\.","errorType":"validation","errorClass":"ArgumentException","httpStatus":null,"severity":"error","filePath":"dotnet/src/Agents/AzureAI/Extensions/AgentToolDefinitionExtensions.cs","lineNumber":181,"sourceCode":"                {\n                    throw new ArgumentException(\"The option keys 'store_name' and 'data_sources' are required for a vector store configuration.\");\n                }\n\n                configurations.Add(new VectorStoreConfigurations(storeName, new VectorStoreConfiguration(dataSources)));\n            }\n        }\n\n        return configurations;\n    }\n\n    private static AzureFunctionBinding GetAzureFunctionBinding(this AgentToolDefinition agentToolDefinition, string bindingType)\n    {\n        Verify.NotNull(agentToolDefinition.Options);\n\n        var binding = agentToolDefinition.GetRequiredOption<Dictionary<object, object>>(bindingType);\n        if (!binding.TryGetValue(\"storage_service_endpoint\", out var endpointValue) || endpointValue is not string storageServiceEndpoint)\n        {\n            throw new ArgumentException($\"The option key '{bindingType}.storage_service_endpoint' is required.\");\n        }\n        if (!binding.TryGetValue(\"queue_name\", out var nameValue) || nameValue is not string queueName)\n        {\n            throw new ArgumentException($\"The option key '{bindingType}.queue_name' is required.\");\n        }\n\n        return new AzureFunctionBinding(new AzureFunctionStorageQueue(storageServiceEndpoint, queueName));\n    }\n\n    internal static int? GetTopK(this AgentToolDefinition agentToolDefinition)\n    {\n        return agentToolDefinition.Options?.TryGetValue(\"top_k\", out var topKValue) ?? false\n            ? int.Parse((string)topKValue!)\n            : null;\n    }\n\n    internal static string? GetFilter(this AgentToolDefinition agentToolDefinition)\n    {","sourceCodeStart":163,"sourceCodeEnd":199,"githubUrl":"https://github.com/microsoft/semantic-kernel/blob/c028a0c7dc4f0814cdcbaba9d998f187a41197bf/dotnet/src/Agents/AzureAI/Extensions/AgentToolDefinitionExtensions.cs#L163-L199","documentation":"Thrown while constructing an AzureFunctionBinding via GetAzureFunctionBinding. After fetching the required option dict for the given bindingType, it must contain a 'storage_service_endpoint' key whose value is a string. If the key is missing or the value is not a string, ArgumentException is thrown. The endpoint identifies the Azure Storage account backing the function queue.","triggerScenarios":"An Azure Function tool binding (e.g., 'storage_queue') option dictionary lacks 'storage_service_endpoint', or its value is a non-string type.","commonSituations":"Agent definition YAML missing the storage endpoint for an Azure Function tool; endpoint set to a null or numeric value; bindingType key itself misnamed.","solutions":["Add 'storage_service_endpoint' (string) under the binding-type key in the tool options.","Ensure the value is the full Azure Storage queue service endpoint URL."],"exampleFix":"// before\nstorage_queue:\n  queue_name: myqueue\n  # storage_service_endpoint missing -> throws 165\n\n// after\nstorage_queue:\n  storage_service_endpoint: https://mystorage.queue.core.windows.net\n  queue_name: myqueue","handlingStrategy":"validation","validationCode":"var binding = tool.GetRequiredOption<Dictionary<object, object>>(bindingType);\nif (!binding.TryGetValue(\"storage_service_endpoint\", out var e) || e is not string)\n    throw new ArgumentException($\"{bindingType}.storage_service_endpoint (string) is required.\");","typeGuard":"static bool HasStorageEndpoint(Dictionary<object, object> b) =>\n    b.TryGetValue(\"storage_service_endpoint\", out var e) && e is string s && !string.IsNullOrEmpty(s);","tryCatchPattern":null,"preventionTips":["Always set storage_service_endpoint under the binding-type key.","Validate Azure Function tool binding options before agent creation."],"tags":["validation","azure-function","agent-tool","configuration"],"backgroundTag":null,"analyzedSha":"c028a0c7dc4f0814cdcbaba9d998f187a41197bf","analyzedAt":"2026-08-13T13:48:05.040Z","schemaVersion":2},"datasetVersion":"2026-08-13T14:17:21.547Z"}