Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
bachuv opened this issue Feb 9, 2024 · 0 comments
Labels

Comments

@bachuv
Copy link
Contributor

bachuv commented Feb 9, 2024

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

Error description:
We have just noticed that some users are experiencing errors in Durable Functions Python 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:

  • v4 bundles: 4.13.1
  • v3 bundles: 3.30.1+

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

# An HTTP-Triggered Function with a Durable Functions Client binding
@myApp.route(route="orchestrators/{functionName}")
@myApp.durable_client_input(client_name="client")
async def http_start(req: func.HttpRequest, client):
    function_name = req.route_params.get('functionName')
    instance_id = await client.start_new(function_name)
    response = client.create_check_status_response(req, instance_id)
    return response

# Orchestrator
@myApp.orchestration_trigger(context_name="context")
def hello_orchestrator(context):
    cities = ["Tokyo", "Seattle", "Cairo"]
    results = yield context.call_activity("hello", cities)
    return results

# Activity
@myApp.activity_trigger(input_name="cities")
def hello(cities: list):
    results = []
    for city in cities:
        result = f"Hello {city}"
        context.log(result)
        results.append(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)"
  },
  1. Manually install Durable Functions extension version v2.12.0 or lower by following these instructions.
@lilyjma lilyjma added the P1 Priority 1 label Mar 1, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants