{"record":{"id":"1de3704f39800c53","repo":"microsoft/semantic-kernel","slug":"no-fulltypename-message-type-is-found-while-re","errorCode":null,"errorMessage":"No '{fullTypeName}' message type is found while resolving data contracts for the '{methodName}' method.","messagePattern":"No '(.+?)' message type is found while resolving data contracts for the '(.+?)' method\\.","errorType":"exception","errorClass":"KernelException","httpStatus":null,"severity":"error","filePath":"dotnet/src/Functions/Functions.Grpc/Protobuf/ProtoDocumentParser.cs","lineNumber":91,"sourceCode":"    /// </summary>\n    /// <param name=\"allMessageTypes\">Existing ,message types declared in .proto file.</param>\n    /// <param name=\"messageTypeName\">Message type to create the data contract for.</param>\n    /// <param name=\"package\">The .proto file 'package' specifier.</param>\n    /// <param name=\"methodName\">The method to create data contract for.</param>\n    /// <returns>The operation data contract.</returns>\n    private GrpcOperationDataContractType CreateDataContract(IList<DescriptorProto> allMessageTypes, string messageTypeName, string package, string methodName)\n    {\n        var fullTypeName = messageTypeName.TrimStart('.');\n\n        var typeName = fullTypeName;\n\n        if (!string.IsNullOrEmpty(package))\n        {\n            typeName = fullTypeName.Replace($\"{package}.\", \"\");\n        }\n\n        var messageType = allMessageTypes.SingleOrDefault(mt => mt.Name == fullTypeName || mt.Name == typeName) ??\n            throw new KernelException($\"No '{fullTypeName}' message type is found while resolving data contracts for the '{methodName}' method.\");\n\n        var fields = this.GetDataContractFields(messageType.Fields);\n\n        return new GrpcOperationDataContractType(fullTypeName, fields);\n    }\n\n    /// <summary>\n    /// Returns data contract fields.\n    /// </summary>\n    /// <param name=\"fields\">Message type fields.</param>\n    /// <returns>The data contract fields.</returns>\n    private List<GrpcOperationDataContractTypeFiled> GetDataContractFields(List<FieldDescriptorProto> fields)\n    {\n        var result = new List<GrpcOperationDataContractTypeFiled>();\n\n        foreach (var field in fields)\n        {\n            var type = GetProtobufDataTypeName(field.type);","sourceCodeStart":73,"sourceCodeEnd":109,"githubUrl":"https://github.com/microsoft/semantic-kernel/blob/c028a0c7dc4f0814cdcbaba9d998f187a41197bf/dotnet/src/Functions/Functions.Grpc/Protobuf/ProtoDocumentParser.cs#L73-L109","documentation":"Thrown by CreateDataContract when no message type in `allMessageTypes` matches the requested `fullTypeName` (or the package-stripped `typeName`). The runner resolves each method's request/response message type by name against the set parsed from the .proto; a miss means the .proto references a message type it does not define or import.","triggerScenarios":"A service method whose input/output type name doesn't match any defined message — typo in the type name, missing message definition, or package-qualification mismatch.","commonSituations":"Refactoring message names in the .proto without updating method signatures; package declaration changed so the full type name differs; imported message types not included in the parsed descriptor set.","solutions":["Confirm the message type referenced by the method exists in the same .proto (and is spelled identically).","Ensure the package prefix matches — `package.foo.Bar` must align with the package declaration.","Include imported .proto files so their message types appear in allMessageTypes."],"exampleFix":"// before\nservice S { rpc M (Missing) returns (Missing); }\n// after\nmessage Missing { string id = 1; }\nservice S { rpc M (Missing) returns (Missing); }","handlingStrategy":"validation","validationCode":"// Cross-check that every message type referenced by rpc methods is defined in the .proto or its imports.","typeGuard":null,"tryCatchPattern":"try { /* register */ }\ncatch (KernelException ex) when (ex.Message.Contains(\"message type is found while resolving\")) {\n    // a referenced message type is missing from the schema\n}","preventionTips":["Keep message definitions and service definitions in the same .proto when possible.","Update method signatures whenever you rename a message."],"tags":["grpc","protobuf","parsing","type-resolution"],"backgroundTag":null,"analyzedSha":"c028a0c7dc4f0814cdcbaba9d998f187a41197bf","analyzedAt":"2026-08-13T13:48:05.040Z","schemaVersion":2},"datasetVersion":"2026-08-13T14:17:21.547Z"}