Skip to content

[wip] Update workflow delete warning for passive-cluster rejection - #1154

Draft
jiechenz wants to merge 1 commit into
mainfrom
jiechenz/workflow-delete-warning-passive-cluster
Draft

[wip] Update workflow delete warning for passive-cluster rejection#1154
jiechenz wants to merge 1 commit into
mainfrom
jiechenz/workflow-delete-warning-passive-cluster

Conversation

@jiechenz

@jiechenz jiechenz commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

The server now rejects DeleteWorkflowExecution on a cluster that is passive for the Workflow, so the old warning's advice -- target the passive cluster directly with --grpc-meta xdc-redirection=false -- no longer works. State the rule instead: only the Workflow's active cluster accepts the deletion, and requests sent to a passive cluster are forwarded there by default.

Updated in both the runtime warning and the workflow delete long help, with commands.gen.go regenerated from commands.yaml.

The standalone activity warning is left as is: DeleteActivityExecution has no equivalent restriction, so targeting a passive cluster still works there.

Related issues

What changed?

Checklist

Stability

  • Breaking changes are marked with 💥 in the PR title and release notes
  • Changes to JSON output (-o json / -o jsonl) are treated as breaking changes

Design

  • This feature does not depend on Cloud-only APIs or behavior (it works against an OSS server)
  • New commands follow temporal <noun> <verb> structure (e.g. temporal workflow start)
  • New flags are named after the API concept, not the implementation mechanism (good: --search-attribute, bad: --index-field)
  • New flags don't duplicate an existing flag that serves the same purpose
  • New flags do not have short aliases without strong justification
  • Experimental features are marked with (Experimental) in commands.yaml

Help text (see style guide at the top of commands.yaml)

  • All flags shown in help text and examples are implemented and functional
  • Summaries use sentence case and have no trailing period
  • Long descriptions end with a period and include at least one example invocation
  • Examples use long flags (--namespace, not -n), one flag per line
  • Placeholder values use YourXxx form (YourWorkflowId, YourNamespace)

Behavior

  • Results go to stdout; errors and warnings go to stderr
  • Error messages are lowercase with no trailing punctuation

Tests

  • Added functional test(s) (SharedServerSuite)
  • Added unit test(s) (func TestXxx) where applicable

Manual tests

Setup

temporal server start-dev --headless
temporal workflow start \
    --type YourWorkflowType \
    --task-queue YourTaskQueue \
    --workflow-id YourWorkflowId

Happy path

$ temporal <command> \
    --flag value
<expected output>

Error case

$ temporal <command> \
    --invalid-combination
Error: <expected error message>
$ echo $?
1

Composition

$ temporal <command-one> ...
$ temporal <command-two> --flag <value-from-above>
<expected output>

The server now rejects DeleteWorkflowExecution on a cluster that is passive for
the Workflow, so the old warning's advice -- target the passive cluster directly
with `--grpc-meta xdc-redirection=false` -- no longer works. State the rule
instead: only the Workflow's active cluster accepts the deletion, and requests
sent to a passive cluster are forwarded there by default.

Updated in both the runtime warning and the `workflow delete` long help, with
commands.gen.go regenerated from commands.yaml.

The standalone activity warning is left as is: DeleteActivityExecution has no
equivalent restriction, so targeting a passive cluster still works there.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant