-
Notifications
You must be signed in to change notification settings - Fork 56
Fan-out fan-in task_all exception thrown workaround throwing errors #428
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
Comments
Hi, I am working on this reproduction and will reach back to you soon. |
Any update on this? Also running into a scenario where if one task fails during a fan out I want to still yield the results of the successful tasks. Thanks |
I have tried the following and while the
Noticed that the |
@nytian any update on this? Thanks! |
@dhurley-suncor: do you have a minimal repro you can |
Here you go. Just as a recap - expectation I thought would be that if one task fails during task_all() fan out/in the orchestration could still continue. For example, case when we have many documents and are passing to a endpoint to extract text, if we can't do one we don't want to stop the orchestration but will still want the fan in to complete. Thanks! |
@davidmrdavid any update? |
Reproduced the issue at my end. All the activity functions got executed. The issue is that the Exception is not JSON serializable. So any return type that includes an Exception object will cause the error I will open a PR soon to fix this. |
Hi @dhurley-suncor, @IDrumsey - thank you for using Durable Functions! I'm a PM working on DF and would love to learn about your experience using the product. You can share your feedback in this quick survey to help influence what the team works on next. If you're building intelligent apps, there's also an opportunity to participate in a compensated UX study. Thanks! |
Close the issue as the error handling has been updated in PR #493 |
🐛 Describe the bug
@davidmrdavid
Originally asked this question over here, but moved to this repo as requested.
When using the workaround solution suggested here using Python, one of the following two errors is thrown. The second one seems to always be thrown when running the function without debugging, whereas when debugging it seems semi-random which error gets thrown (Both have been thrown with the same code being ran).
The purpose of the workaround is to continue waiting for all tasks to complete after
task_all
even if any of the tasks throw an exception.The workaround I linked is using Node.js whereas I'm using Python. I tested it in Node.js and it worked, but it does not work using Python (instead it throws the error seen above).
🤔 Expected behavior
If an exception is thrown from one of the tasks sent to
task_all()
, the orchestrator function should not fail, but just keep waiting until all the tasks are complete.In the zipped code I'm attaching, there are 3 activity functions getting ran. Only the second one throws an exception. The orchestrator should not return status
Failed
when the 2nd activity function throws an exception, but rather should wait for the rest of the tasks to complete and return the results of the 2 successful activity functions when all tasks have completed (failed or not).☕ Steps to reproduce
Fan-out fan-in
Here's the zipped code you can use to view the issue. You'll have to attach a storage account.
bug.zip
Locally
The text was updated successfully, but these errors were encountered: