Azure / Azure/azure-functions-dotnet-worker

Allow for custom result value on invocation failure

Open
#1,942 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement team-issue
Dominant language
C#
Stars
466
Forks
215
Avg merge
3d 10h
Merged PRs (30d)
7

Description

The durable functions extension has a need to fail an invocation (customer code threw an exception), however we need to send a custom payload back to the host on failure. Today's extension point only allows for letting an exception bubble up throw the function invocation pipeline, which will be sent across as an RpcException to the host.

This functionality is not sufficient for durable, as the worker extension pre-processes the failure worker side which needs to go to the host for persistence and propagation to any parent orchestrations. We should design and add a way for extensions to enrich a failure with custom data that can be consumed by the host/WebJobs extension.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with src/DotNetWorker.Grpc/Handlers/InvocationHandler.cs around line 118 to understand how invocation failures are currently sent to the host. Trace the existing extension point and the host/WebJobs consumption path before proposing an API. Done means an extension can provide custom failure data that reaches the host for persistence and propagation to parent orchestrations.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp
Domain
api, backend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.