Skip to content

Skip Tableau refresh/task run on 409093 resource conflict#69382

Open
jayamanikharyono wants to merge 1 commit into
apache:mainfrom
jayamanikharyono:tableau-refresh-skip-on-conflict
Open

Skip Tableau refresh/task run on 409093 resource conflict#69382
jayamanikharyono wants to merge 1 commit into
apache:mainfrom
jayamanikharyono:tableau-refresh-skip-on-conflict

Conversation

@jayamanikharyono

Copy link
Copy Markdown
Contributor

Add a skip_on_conflict option to TableauOperator to allow Tableau 409093 Resource Conflict errors to be treated as skipped instead of failed.

A 409093 error indicates that a refresh or task run for the same resource has already been queued or is currently running. In these cases, failing the task may not be desirable, especially for overlapping schedules or retries where the requested operation is already in progress.

When skip_on_conflict=True, the operator raises AirflowSkipException for 409093 responses. Otherwise, the existing behavior is preserved. The option defaults to False to maintain backward compatibility.

This behavior applies to both supported Tableau operations:

  • method="refresh" for datasources and workbooks
  • method="run" for tasks

Supporting docs :


Was generative AI tooling used to co-author this PR?
  • Yes (please specify the tool below)

@jayamanikharyono
jayamanikharyono force-pushed the tableau-refresh-skip-on-conflict branch from 5b82ba5 to 9da6df9 Compare July 6, 2026 13:56
@jayamanikharyono
jayamanikharyono marked this pull request as draft July 6, 2026 13:57
@jayamanikharyono
jayamanikharyono marked this pull request as ready for review July 6, 2026 14:03
@jayamanikharyono
jayamanikharyono force-pushed the tableau-refresh-skip-on-conflict branch 3 times, most recently from 5a93f41 to 973c4d6 Compare July 7, 2026 13:53
@potiuk potiuk added the ready for maintainer review Set after triaging when all criteria pass. label Jul 8, 2026
@jayamanikharyono
jayamanikharyono force-pushed the tableau-refresh-skip-on-conflict branch 6 times, most recently from 933aae9 to 3eaf940 Compare July 18, 2026 13:18
@eladkal
eladkal requested a review from jroachgolf84 July 19, 2026 02:41

@jroachgolf84 jroachgolf84 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Good start!

Are there tests for when incremental_refresh == True? Since there are changes there, I'd recommend adding those tests.

Comment thread providers/tableau/tests/unit/tableau/operators/test_tableau.py Outdated
Comment thread providers/tableau/tests/unit/tableau/operators/test_tableau.py Outdated
@jayamanikharyono
jayamanikharyono force-pushed the tableau-refresh-skip-on-conflict branch from 3eaf940 to 1f57d4e Compare July 20, 2026 04:48
Comment thread providers/tableau/tests/unit/tableau/operators/test_tableau.py
Add `skip_on_conflict` support and improve conflict messages.
@jayamanikharyono
jayamanikharyono force-pushed the tableau-refresh-skip-on-conflict branch from 1f57d4e to c8c1fd6 Compare July 24, 2026 03:25

@jroachgolf84 jroachgolf84 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

This LGTM - were you able to test this on an actual Tableau instance?

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants