Azure / azure-functions-powershell-worker

PowerShell language worker for Azure Functions.
MIT License
204 stars 53 forks source link

Known regression: Durable Functions Activity input fails to deserialize when the input is an array #1037

Open bachuv opened 7 months ago

bachuv commented 7 months ago

Known regression notice: Activity input fails to deserialize when the input is an array

Error description: We have just noticed that users are experiencing errors in Durable Functions PowerShell apps with an exception that includes Exception binding parameter '<your activity parameter name>' and Unexpected character encountered while parsing value.

This issue started with Durable Functions version v2.13.0. The following extension bundles are affected:

Repro: Use an array type as an input to your activity function.

Orchestrator function

param($Context)

$cities = @("Tokyo", "Seattle", "Cairo")
$output = Invoke-DurableActivity -FunctionName 'Hello' -Input $cities

$output

Activity function

param($cities)

$results = @()

foreach ($city in $cities) {
    $result = "Hello $city"
    $results += $result
}

return $results

Incoming solution: We're issuing a hotfix extension bundles release that will automatically fix any apps that are hitting the issue described here. It will take a few days to roll out.

Immediate Mitigation Options: There are two ways to fix this issue: Pinning the extension bundles version or manually installing the working Durable Functions extension version.

1) Pinning the extension bundles version - Update the extension bundles version in host.json to use v3.29.0 or v4.12.0.

Example:


  "extensionBundle": {
    "id": "Microsoft.Azure.Functions.ExtensionBundle",
    "version": "[4.*, 4.13.0)"
  },

2) Manually install Durable Functions extension version v2.12.0 or lower by following these instructions.