<p dir="auto"><strong>Apache Airflow version</strong>: 1.10.9</p>
<p dir="auto"><strong>Kubernetes version (if you are using kubernetes)</strong> (use <code class="notranslate">kubectl version</code>):</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="Client Version: version.Info{Major:&quot;1&quot;, Minor:&quot;17&quot;, GitVersion:&quot;v1.17.3&quot;, GitCommit:&quot;06ad960bfd03b39c8310aaf92d1e7c12ce618213&quot;, GitTreeState:&quot;clean&quot;, BuildDate:&quot;2020-02-13T18:06:54Z&quot;, GoVersion:&quot;go1.13.8&quot;, Compiler:&quot;gc&quot;, Platform:&quot;darwin/amd64&quot;}
Server Version: version.Info{Major:&quot;1&quot;, Minor:&quot;14&quot;, GitVersion:&quot;v1.14.8&quot;, GitCommit:&quot;c52f59bbba5fbf21fbb18e9a06f96e563fe4c20a&quot;, GitTreeState:&quot;clean&quot;, BuildDate:&quot;2020-01-31T20:00:26Z&quot;, GoVersion:&quot;go1.12.10&quot;, Compiler:&quot;gc&quot;, Platform:&quot;linux/amd64&quot;}"><pre class="notranslate"><code class="notranslate">Client Version: version.Info{Major:"1", Minor:"17", GitVersion:"v1.17.3", GitCommit:"06ad960bfd03b39c8310aaf92d1e7c12ce618213", GitTreeState:"clean", BuildDate:"2020-02-13T18:06:54Z", GoVersion:"go1.13.8", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"14", GitVersion:"v1.14.8", GitCommit:"c52f59bbba5fbf21fbb18e9a06f96e563fe4c20a", GitTreeState:"clean", BuildDate:"2020-01-31T20:00:26Z", GoVersion:"go1.12.10", Compiler:"gc", Platform:"linux/amd64"}
</code></pre></div>
<p dir="auto"><strong>Environment</strong>: AKS</p>
<ul dir="auto">
<li><strong>Cloud provider or hardware configuration</strong>: AKS</li>
<li><strong>OS</strong> (e.g. from /etc/os-release):</li>
<li><strong>Kernel</strong> (e.g. <code class="notranslate">uname -a</code>):</li>
<li><strong>Install tools</strong>: Helm</li>
</ul>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="Client: &amp;version.Version{SemVer:&quot;v2.15.1&quot;, GitCommit:&quot;cf1de4f8ba70eded310918a8af3a96bfe8e7683b&quot;, GitTreeState:&quot;clean&quot;}                                  Server: &amp;version.Version{SemVer:&quot;v2.15.2&quot;, GitCommit:&quot;8dce272473e5f2a7bf58ce79bb5c3691db54c96b&quot;, GitTreeState:&quot;clean&quot;}"><pre class="notranslate"><code class="notranslate">Client: &amp;version.Version{SemVer:"v2.15.1", GitCommit:"cf1de4f8ba70eded310918a8af3a96bfe8e7683b", GitTreeState:"clean"}                                  Server: &amp;version.Version{SemVer:"v2.15.2", GitCommit:"8dce272473e5f2a7bf58ce79bb5c3691db54c96b", GitTreeState:"clean"}
</code></pre></div>
<ul dir="auto">
<li><strong>Others</strong>:</li>
</ul>
<p dir="auto"><strong>What happened</strong>:<br>
Getting the following ImportError this morning:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="*** waiting 10s...
*** executing initdb
[2020-04-22 14:47:47,388] {{settings.py:253}} INFO - settings.configure_orm(): Using pool settings. pool_size=5, max_overflow=10, pool_recycle=1800, pid=26
Traceback (most recent call last):
  File &quot;/usr/local/bin/airflow&quot;, line 26, in &lt;module&gt;
    from airflow.bin.cli import CLIFactory
  File &quot;/usr/local/lib/python3.7/site-packages/airflow/bin/cli.py&quot;, line 71, in &lt;module&gt;                                                                
    from airflow.www_rbac.app import cached_app as cached_app_rbac
  File &quot;/usr/local/lib/python3.7/site-packages/airflow/www_rbac/app.py&quot;, line 27, in &lt;module&gt;                                                           
    from flask_appbuilder import AppBuilder, SQLA
  File &quot;/usr/local/lib/python3.7/site-packages/flask_appbuilder/__init__.py&quot;, line 6, in &lt;module&gt;                                                       
    from .base import AppBuilder  # noqa: F401
  File &quot;/usr/local/lib/python3.7/site-packages/flask_appbuilder/base.py&quot;, line 8, in &lt;module&gt;                                                           
    from .api.manager import OpenApiManager
  File &quot;/usr/local/lib/python3.7/site-packages/flask_appbuilder/api/manager.py&quot;, line 7, in &lt;module&gt;                                                    
    from flask_appbuilder.baseviews import BaseView
  File &quot;/usr/local/lib/python3.7/site-packages/flask_appbuilder/baseviews.py&quot;, line 21, in &lt;module&gt;                                                     
    from .forms import GeneralModelConverter
  File &quot;/usr/local/lib/python3.7/site-packages/flask_appbuilder/forms.py&quot;, line 17, in &lt;module&gt;                                                         
    from .fieldwidgets import (
  File &quot;/usr/local/lib/python3.7/site-packages/flask_appbuilder/fieldwidgets.py&quot;, line 3, in &lt;module&gt;                                                   
    from wtforms.widgets import html_params, HTMLString
ImportError: cannot import name 'HTMLString' from 'wtforms.widgets' (/usr/local/lib/python3.7/site-packages/wtforms/widgets/__init__.py)                "><pre class="notranslate"><code class="notranslate">*** waiting 10s...
*** executing initdb
[2020-04-22 14:47:47,388] {{settings.py:253}} INFO - settings.configure_orm(): Using pool settings. pool_size=5, max_overflow=10, pool_recycle=1800, pid=26
Traceback (most recent call last):
  File "/usr/local/bin/airflow", line 26, in &lt;module&gt;
    from airflow.bin.cli import CLIFactory
  File "/usr/local/lib/python3.7/site-packages/airflow/bin/cli.py", line 71, in &lt;module&gt;                                                                
    from airflow.www_rbac.app import cached_app as cached_app_rbac
  File "/usr/local/lib/python3.7/site-packages/airflow/www_rbac/app.py", line 27, in &lt;module&gt;                                                           
    from flask_appbuilder import AppBuilder, SQLA
  File "/usr/local/lib/python3.7/site-packages/flask_appbuilder/__init__.py", line 6, in &lt;module&gt;                                                       
    from .base import AppBuilder  # noqa: F401
  File "/usr/local/lib/python3.7/site-packages/flask_appbuilder/base.py", line 8, in &lt;module&gt;                                                           
    from .api.manager import OpenApiManager
  File "/usr/local/lib/python3.7/site-packages/flask_appbuilder/api/manager.py", line 7, in &lt;module&gt;                                                    
    from flask_appbuilder.baseviews import BaseView
  File "/usr/local/lib/python3.7/site-packages/flask_appbuilder/baseviews.py", line 21, in &lt;module&gt;                                                     
    from .forms import GeneralModelConverter
  File "/usr/local/lib/python3.7/site-packages/flask_appbuilder/forms.py", line 17, in &lt;module&gt;                                                         
    from .fieldwidgets import (
  File "/usr/local/lib/python3.7/site-packages/flask_appbuilder/fieldwidgets.py", line 3, in &lt;module&gt;                                                   
    from wtforms.widgets import html_params, HTMLString
ImportError: cannot import name 'HTMLString' from 'wtforms.widgets' (/usr/local/lib/python3.7/site-packages/wtforms/widgets/__init__.py)                
</code></pre></div>
<p dir="auto"><strong>What you expected to happen</strong>:</p>

<p dir="auto">due to breaking change here in v2.3.0: <a class="commit-link" href="https://github.com/wtforms/wtforms/compare/2.2.1...2.3.0#diff-6393540c887450b9738cb2eecc5bcad8">wtforms/wtforms@<tt>2.2.1...2.3.0</tt>#diff-6393540c887450b9738cb2eecc5bcad8</a></p>
<p dir="auto"><strong>How to reproduce it</strong>:</p>

<p dir="auto"><strong>Anything else we need to know</strong>:</p>
<h3 dir="auto">Apache Airflow Provider(s)</h3>
<p dir="auto">jira</p>
<h3 dir="auto">Versions of Apache Airflow Providers</h3>
<p dir="auto">apache-airflow-providers-jira==2.0.1</p>
<h3 dir="auto">Apache Airflow version</h3>
<p dir="auto">2.2.2</p>
<h3 dir="auto">Operating System</h3>
<p dir="auto">Amazon Linux 2</p>
<h3 dir="auto">Deployment</h3>
<p dir="auto">MWAA</p>
<h3 dir="auto">Deployment details</h3>
<p dir="auto"><em>No response</em></p>
<h3 dir="auto">What happened</h3>
<p dir="auto">I've been trying to use the Jira Operator to create a Ticket from Airflow and use the JiraTicketSensor to check if the ticket was resolved. Creating the task works fine, but I can't get the Sensor to work.</p>
<p dir="auto">If I don't provide the method_name I get an error that it is required, if I provide it as None, I get an error saying the Task id has already been added to the DAG.</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="Broken DAG: [/usr/local/airflow/dags/jira_ticket_sensor.py] Traceback (most recent call last):
  File &quot;/usr/local/lib/python3.7/site-packages/airflow/models/baseoperator.py&quot;, line 553, in __init__
    task_group.add(self)
  File &quot;/usr/local/lib/python3.7/site-packages/airflow/utils/task_group.py&quot;, line 175, in add
    raise DuplicateTaskIdFound(f&quot;Task id '{key}' has already been added to the DAG&quot;)
airflow.exceptions.DuplicateTaskIdFound: Task id 'jira_sensor' has already been added to the DAG"><pre lang="text" class="notranslate"><code class="notranslate">Broken DAG: [/usr/local/airflow/dags/jira_ticket_sensor.py] Traceback (most recent call last):
  File "/usr/local/lib/python3.7/site-packages/airflow/models/baseoperator.py", line 553, in __init__
    task_group.add(self)
  File "/usr/local/lib/python3.7/site-packages/airflow/utils/task_group.py", line 175, in add
    raise DuplicateTaskIdFound(f"Task id '{key}' has already been added to the DAG")
airflow.exceptions.DuplicateTaskIdFound: Task id 'jira_sensor' has already been added to the DAG
</code></pre></div>
<h3 dir="auto">What you think should happen instead</h3>
<p dir="auto"><em>No response</em></p>
<h3 dir="auto">How to reproduce</h3>
<p dir="auto">use this dag</p>
<div class="highlight highlight-source-python notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="from datetime import datetime

from airflow import DAG
from airflow.providers.jira.sensors.jira import JiraTicketSensor

with DAG(
    dag_id='jira_ticket_sensor',
    schedule_interval=None,
    start_date=datetime(2021, 1, 1),
    catchup=False
) as dag:
    jira_sensor = JiraTicketSensor(
        task_id='jira_sensor',
        jira_conn_id='jira_default',
        ticket_id='TEST-1',
        field='status',
        expected_value='Completed',
        method_name='issue',
        poke_interval=600
    )"><pre class="notranslate"><span class="pl-k">from</span> <span class="pl-s1">datetime</span> <span class="pl-k">import</span> <span class="pl-s1">datetime</span>

<span class="pl-k">from</span> <span class="pl-s1">airflow</span> <span class="pl-k">import</span> <span class="pl-v">DAG</span>
<span class="pl-k">from</span> <span class="pl-s1">airflow</span>.<span class="pl-s1">providers</span>.<span class="pl-s1">jira</span>.<span class="pl-s1">sensors</span>.<span class="pl-s1">jira</span> <span class="pl-k">import</span> <span class="pl-v">JiraTicketSensor</span>

<span class="pl-k">with</span> <span class="pl-v">DAG</span>(
    <span class="pl-s1">dag_id</span><span class="pl-c1">=</span><span class="pl-s">'jira_ticket_sensor'</span>,
    <span class="pl-s1">schedule_interval</span><span class="pl-c1">=</span><span class="pl-c1">None</span>,
    <span class="pl-s1">start_date</span><span class="pl-c1">=</span><span class="pl-en">datetime</span>(<span class="pl-c1">2021</span>, <span class="pl-c1">1</span>, <span class="pl-c1">1</span>),
    <span class="pl-s1">catchup</span><span class="pl-c1">=</span><span class="pl-c1">False</span>
) <span class="pl-k">as</span> <span class="pl-s1">dag</span>:
    <span class="pl-s1">jira_sensor</span> <span class="pl-c1">=</span> <span class="pl-v">JiraTicketSensor</span>(
        <span class="pl-s1">task_id</span><span class="pl-c1">=</span><span class="pl-s">'jira_sensor'</span>,
        <span class="pl-s1">jira_conn_id</span><span class="pl-c1">=</span><span class="pl-s">'jira_default'</span>,
        <span class="pl-s1">ticket_id</span><span class="pl-c1">=</span><span class="pl-s">'TEST-1'</span>,
        <span class="pl-s1">field</span><span class="pl-c1">=</span><span class="pl-s">'status'</span>,
        <span class="pl-s1">expected_value</span><span class="pl-c1">=</span><span class="pl-s">'Completed'</span>,
        <span class="pl-s1">method_name</span><span class="pl-c1">=</span><span class="pl-s">'issue'</span>,
        <span class="pl-s1">poke_interval</span><span class="pl-c1">=</span><span class="pl-c1">600</span>
    )</pre></div>
<h3 dir="auto">Anything else</h3>
<p dir="auto">This error occurs every time</p>
<h3 dir="auto">Are you willing to submit PR?</h3>
<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> Yes I am willing to submit a PR!</li>
</ul>
<h3 dir="auto">Code of Conduct</h3>
<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> I agree to follow this project's <a href="https://github.com/apache/airflow/blob/main/CODE_OF_CONDUCT.md">Code of Conduct</a></li>
</ul>