Skip to content

Add Cosmos 1.14.2 row to the watcher-retry behavior history#2742

Open
tatiana wants to merge 2 commits into
mainfrom
watcher-retry-history-1.14.2
Open

Add Cosmos 1.14.2 row to the watcher-retry behavior history#2742
tatiana wants to merge 2 commits into
mainfrom
watcher-retry-history-1.14.2

Conversation

@tatiana
Copy link
Copy Markdown
Collaborator

@tatiana tatiana commented May 28, 2026

Summary

Walk each of the six tables in docs/guides/run_dbt/airflow-worker/watcher-retry-history.rst forward by one release, capturing every retry-mechanism PR that ships in Cosmos 1.14.2.

PR coverage

PR Where it appears in the new 1.14.2 rows
#2615 — Watcher + depends_on_past Avoid duplicate or concurrent runs — atomic-TaskGroup-across-runs note, closing the cross-run risk from #2596
#2629 — Sanitize disallowed chars from XCom backup variable key (closes #2619) Task-level retry — producer (primary); cross-referenced from Automatic retries and Full DAG / TaskGroup clear
#2683 — Prevent watcher producers from colliding on one XCom-backup key (closes #2625) Same as #2629
#2684 — Retry watcher downstream models on upstream-failure recovery Does the Airflow state match dbt's? (closes the "false green"), Task-level retry — consumer (skip-to-fail rewrite), Automatic retries
#2713 — Strip --log-format from watcher consumer-retry flags Task-level retry — consumer — retry logs now default to dbt's text format, with the operator_args={"dbt_cmd_flags": [...]} opt-in path

One historical-row tweak

In Task-level retry — producer, the 1.14.1 known-issue list header changes from **Known issues with the XCom backup mechanism:** to **Known issues with the XCom backup mechanism (both fixed in 1.14.2):**. The two listed bullets stay verbatim — readers landing on the 1.14.1 row see the issues as documented, with a forward-pointer to the version that resolves them.

The 1.14.1 row in Does the Airflow state match dbt's? is intentionally not edited. It stays as the **Yes.** it shipped with; the new 1.14.2 row carries the "false green was here, now closed" story so the historical rows remain immutable.

Test plan

  • hatch run docs:build succeeds — the 2 build warnings on the resulting build are pre-existing on main (docs/guides/run_dbt/customization/scheduling.rst duplicate-target labels), unrelated to this change.
  • python3 scripts/check_docs_style.py docs/guides/run_dbt/airflow-worker/watcher-retry-history.rst — clean.
  • codespell docs/guides/run_dbt/airflow-worker/watcher-retry-history.rst — clean.
  • Heading hierarchy, bullet style (-), and PR-link \#NNNN `_` formatting match the rest of the file.

Drafted; promote out of draft once the 1.14.2 stable release goes out (or sooner if you want to merge the doc-update first and let the release-notes link point at it).

🤖 Generated with Claude Code (https://claude.com/claude-code)

Walk each of the six watcher-retry tables forward by one release,
capturing every retry-mechanism PR that ships in 1.14.2:

- "Does the Airflow state match dbt's?" — note the upstream-failure
  recovery fix from #2684. The 1.14.1 row stays as it shipped; the
  1.14.2 row carries the closes-the-gap story.
- "Task-level retry — consumer" — log the two consumer-side changes:
  upstream_failure skip-to-fail rewrite from #2684 and the
  --log-format json strip from #2713 (with the opt-in for users who
  still want JSON output on retry).
- "Task-level retry — producer" — annotate the 1.14.1 known-issue
  list with "(both fixed in 1.14.2)" and add the 1.14.2 row noting
  how #2629 (key sanitisation) and #2683 (per-TaskGroup uniqueness)
  close them.
- "Automatic retries" and "Full DAG / TaskGroup clear" — both now
  cross-reference the producer-row fixes so users don't have to
  chase down the same two PRs in two places.
- "Avoid duplicate or concurrent runs" — note that depends_on_past
  on a DbtTaskGroup (#2615) now treats the group as an atomic unit
  across DAG runs, closing the cross-run concurrent-run risk from
  #2596.

🤖 Generated with Claude Code (https://claude.com/claude-code)
Two consistency / accuracy fixes pointed out in review:

1. "Does the Airflow state match dbt's?" — 1.14.1 row no longer
   contradicts the new 1.14.2 false-green note. It was previously a
   bare "Yes", but #2684 (added in 1.14.2) closes a real false-green
   gap that existed in 1.14.1: upstream-failure-skipped downstream
   nodes were silently marked SKIPPED while the DAG completed
   success. The 1.14.1 row now reads "Mostly, except upstream-
   failure-skipped downstream nodes could produce a 'false green' --
   fixed in 1.14.2 by #2684", with the explicit forward pointer.

2. "Avoid duplicate or concurrent runs" — 1.14.2 row corrected to
   describe the actual topology landed by #2615. Previously read "the
   producer-done gateway is wired downstream of every consumer task
   and the task-group leaves carry wait_for_downstream=True", which
   overstates both halves: only leaf consumer tasks (those without
   downstream tasks) get wired upstream of the gateway (see
   cosmos/airflow/graph.py:795-796), and wait_for_downstream=True is
   set on the producer plus all watcher consumer tasks, not just task
   group leaves (see graph.py:777, 793). Reworded to: "leaf consumer
   tasks are wired upstream of the producer-done gateway, and the
   producer plus watcher tasks carry wait_for_downstream=True."

Verified: hatch run docs:sphinx-build -W -b html docs docs/_build/html
succeeds.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@tatiana tatiana marked this pull request as ready for review May 28, 2026 18:02
Copilot AI review requested due to automatic review settings May 28, 2026 18:02
@tatiana tatiana requested review from a team, corsettigyg, dwreeves and jbandoro as code owners May 28, 2026 18:02
@tatiana tatiana requested review from pankajastro and pankajkoti May 28, 2026 18:02
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates the watcher retry behavior history documentation to include Cosmos 1.14.2, capturing the retry-related changes shipped in that release across the existing history tables.

Changes:

  • Add 1.14.2 rows across the watcher retry history tables, referencing the relevant PRs/issues.
  • Update the 1.14.1 “Known issues with the XCom backup mechanism” header to indicate those issues are fixed in 1.14.2.
  • Expand narrative details for 1.14.2 around upstream-failure downstream retries and consumer retry logging behavior.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines 54 to +57
* - **1.14.1**
- **Yes**.
- **Mostly**, except upstream-failure-skipped downstream nodes could produce a "false
green" — fixed in 1.14.2 by
`#2684 <https://github.com/astronomer/astronomer-cosmos/pull/2684>`_.
same DAG run share one backup key and log ``UniqueViolation`` on every model completion.
* - **1.14.2**
- Same as 1.14.1, with both XCom-backup known issues from 1.14.1 fixed. The key generator now
sanitises every component to ``[A-Za-z0-9_-]`` — the safest subset across the secrets
Copy link
Copy Markdown
Contributor

@pankajkoti pankajkoti left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. Would be nice to alter the PR description. There's a footer line in the PR description which says something like "Drafted, .... " Looks like a status update and some actionable items that are (based on the 1.14.2 release) no longer needed. would be nice to change/remove that too.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

3 participants