temporalio / temporalio/features

Gracefully fail gRPC-message-too-large issues in worker

Open
#624 4 comments 2 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
Go
Stars
32
Forks
28
Avg merge
1d 9h
Merged PRs (30d)
7

Description

Describe the solution you'd like

Also see https://github.com/temporalio/sdk-go/issues/995. Basically this comes back as resource exhausted which is retried by gRPC client, and we should be failing the task.

So we should 1) create a new WorkflowTaskFailedCause for gRPC-message-too-large, and 2) update SDKs to capture the error in clients and convert to non-retryable failure, 3) when failing task because of this failure, clearly specify the enum. The SDK side needs a test confirming the behavior because identifying this error from the server is likely an ugly English-string-check conditional since it is embedded into gRPC server logic. Also, SDKs need to make sure to validate this against cloud which may return a different error due to network/proxy layers.

There is a general server issue open at https://github.com/temporalio/temporal/issues/7777 to make large tasks work, but that is unrelated to this graceful failure.

EDIT: May need to review requirements above, it may be enough to just stop retrying in these situations

Per-SDK Tickets

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 the linked API pull request and the two open Core tickets, then review the completed and not-applicable per-SDK tickets for the current scope. Done means oversized gRPC task failures are identified, represented by the specified enum, and treated as non-retryable with SDK and cloud behavior validated.

Written by the indexing model from the issue text.

Assessment

Domain
backend-api-design, distributed-systems
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.