This is an issue that was discussed on Azure/Azure-Functions#992, but possible not what OP was facing.
When you have an Function with ActivityTrigger, naming a Tuple parameter as 'data' causes indexation error.
For instance, the signature below will cause indexation error:
public async Task<bool> Invoice_SetStatusPaid([ActivityTrigger] (Guid, InvoiceStateCodeEnum, InvoiceStatusCodeEnum) data, ILogger log)
With the following message:
The 'Invoice_SetStatusPaid' function is in error: Microsoft.Azure.WebJobs.Host: Error indexing method 'Invoice_SetStatusPaid'. Microsoft.Azure.WebJobs.Host: Can't bind parameter 'data' to type 'System.ValueTuple`3[System.Guid,Domain.Model.InvoiceStateCodeEnum,Domain.Model.InvoiceStatusCodeEnum]'.
The signature below solves the indexation error by using the name "request" instead of "data" for the Tuple parameter:
public async Task<bool> Invoice_SetStatusPaid([ActivityTrigger] (Guid, string) request, ILogger log)
My hunch is that this has something to do with binding data, which could potentially be a breaking change with Durable JS. Needs some more investigation.
I suspect this is because we use the name data internally for the binding parameter, thus there is a conflict. See here.
I don't expect this is something we can fix without introducing a breaking change and I'm not sure the benefit of changing it will outweigh the cost. For this reason, I'm inclined to close this issue. Let me know if you feel otherwise.
Forbiding the use of parameter name "data" is not a problem at all.
The problem is that is not clear, in documentation or error message, the cause of the problem. I was pretty luck to find the issue 992 where you and Oceanswave pointed the cause
Actually, one of the reasons I opened this issue was to make easier to others find this reference and solve the problem faster.
Maybe this is a constraint that Durable Functions Analyser could handle at compile time. Or even just add some docs around this would be enough. Let me know if I can be usefull somehow.
For now, let's hope this issue is easy to find when looking for "Can't bind parameter 'data'"
I think an analyzer is a great idea for this. I will reopen the issue with the appropriate tag.