diff --git a/CHANGELOG.md b/CHANGELOG.md
index 8898560629..a8523e155e 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -41,6 +41,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Fixes a bug where paths without operationIds would not be included in the generated plugins and ensured operationIds are cleaned up [#4642](https://github.com/microsoft/kiota/issues/4642)
- Fixes a bug where models would be duplicated in some allOf scenarios [#4191](https://github.com/microsoft/kiota/issues/4191)
- Fixes a bug where CLI Generation does not handle path parameters of type "string" and format "date", "date-time", "time", etc. [#4615](https://github.com/microsoft/kiota/issues/4615)
+- Fixes a bug where request executors would be missing Untyped parameters in dotnet [#4692](https://github.com/microsoft/kiota/issues/4692)
## [1.14.0] - 2024-05-02
diff --git a/it/java/pom.xml b/it/java/pom.xml
index 85cdea3afc..9fe033f916 100644
--- a/it/java/pom.xml
+++ b/it/java/pom.xml
@@ -15,7 +15,7 @@
UTF-8
UTF-8
- 1.1.11
+ 1.1.12
diff --git a/it/python/requirements-dev.txt b/it/python/requirements-dev.txt
index 6a2b6d9d10..84db3bc150 100644
--- a/it/python/requirements-dev.txt
+++ b/it/python/requirements-dev.txt
@@ -98,7 +98,7 @@ httpx[http2]==0.27.0
hyperframe==6.0.1 ; python_full_version >= '3.6.1'
-microsoft-kiota-abstractions==1.3.2
+microsoft-kiota-abstractions==1.3.3
microsoft-kiota-authentication-azure==1.0.0
diff --git a/src/Kiota.Builder/Writers/CSharp/CodeMethodWriter.cs b/src/Kiota.Builder/Writers/CSharp/CodeMethodWriter.cs
index 889e348f43..66d29a759f 100644
--- a/src/Kiota.Builder/Writers/CSharp/CodeMethodWriter.cs
+++ b/src/Kiota.Builder/Writers/CSharp/CodeMethodWriter.cs
@@ -394,7 +394,7 @@ protected void WriteRequestExecutorBody(CodeMethod codeElement, RequestParams re
writer.CloseBlock("};");
}
var returnTypeCodeType = codeElement.ReturnType as CodeType;
- var returnTypeFactory = returnTypeCodeType?.TypeDefinition is CodeClass
+ var returnTypeFactory = returnTypeCodeType?.TypeDefinition is CodeClass || (returnTypeCodeType != null && returnTypeCodeType.Name.Equals(KiotaBuilder.UntypedNodeName, StringComparison.OrdinalIgnoreCase))
? $", {returnTypeWithoutCollectionInformation}.CreateFromDiscriminatorValue"
: null;
var prefix = (isVoid, codeElement.ReturnType.IsCollection) switch
diff --git a/tests/Kiota.Builder.Tests/Writers/CSharp/CodeMethodWriterTests.cs b/tests/Kiota.Builder.Tests/Writers/CSharp/CodeMethodWriterTests.cs
index 06fdbf7d21..ae87bd46ba 100644
--- a/tests/Kiota.Builder.Tests/Writers/CSharp/CodeMethodWriterTests.cs
+++ b/tests/Kiota.Builder.Tests/Writers/CSharp/CodeMethodWriterTests.cs
@@ -482,6 +482,32 @@ public void WritesRequestExecutorBody()
AssertExtensions.CurlyBracesAreClosed(result, 1);
}
[Fact]
+ public void WritesRequestExecutorBodyWithUntypedReturnValue()
+ {
+ setup();
+ method.Kind = CodeMethodKind.RequestExecutor;
+ method.HttpMethod = HttpMethod.Get;
+ method.ReturnType = new CodeType { TypeDefinition = null, Name = KiotaBuilder.UntypedNodeName };
+ var errorXXX = root.AddClass(new CodeClass
+ {
+ Name = "ErrorXXX",
+ }).First();
+ method.AddErrorMapping("XXX", new CodeType { Name = "ErrorXXX", TypeDefinition = errorXXX });
+ AddRequestBodyParameters();
+ writer.Write(method);
+ var result = tw.ToString();
+ Assert.Contains("var requestInfo", result);
+ Assert.Contains("var errorMapping = new Dictionary>", result);
+ Assert.Contains("