Problem
Recently I came across an unusual error whilst working with C# Azure Functions. When the Function was executed, the console window showed the following error.
The ‘XXXXXX’ function is in error: Microsoft.Azure.WebJobs.Host: Error indexing method ‘XXXXXX ‘. Microsoft.Azure.WebJobs.Host: Can’t bind parameter ‘data’ to type ‘XXXXXX’.
I checked the Activity function parameter bindings however couldn’t see any obvious issue. However after some head scratching I eventually figured out the source of the issue …
In this post I’ll show you how to resolve this issue.
Solution
As strange as it sounds … it turns out that you cannot use a parameter named ‘data’ within your Activity Function.
To resolve the issue, simply rename your ‘data’ parameter to something else, the error will disappear and the function will work as expected.
This seems to be a known issue, you can find reports from other users here. Unfortunately it isn’t very well documented and is quite obscure, and for that reason, it can be quite puzzling.
As an example. The below function will fail with the above error. Renaming the ‘data’ parameter to something like ‘greeting’ will resolve the error.
[FunctionName("MyDummyFunction")]
public static async Task> RunOrchestrator(
[OrchestrationTrigger] IDurableOrchestrationContext context)
{
var outputs = new List();
outputs.Add(await context.CallActivityAsync("MyDummyFunction_DoStuff", "Hello World"));
return outputs;
}
[FunctionName("MyDummyFunction_DoStuff")]
public static string DoStuff([ActivityTrigger] string data, ILogger log) // Fix: Rename the 'data' param
{
return $"{data}";
}
Final Thoughts
Well I hope this article has helped solve the issue for you. If you have any other solutions, feel free to share it below. Happy coding! 🙂
- Solved: Build Errors Not Showing in VS 2022 - 21st November 2024
- How To: Configure VSCode to Trust Self-Signed Certs - 16th August 2024
- Solved: GitHub Actions – HTTP 403: Resource not accessible by integration - 13th June 2024
Thank you for this. Helps me a lot