An error occurs in AF2.9 when attempting to filter XCom by value
What you think should happen instead?
No response
How to reproduce
Go to Admin > XCom
Add a filter for 'value', put in any string
Hit search
Stack trace included:
[03/Oct/2024:18:11:34 +0000] "GET /dus78e67/xcom/list/?_flt_2_value=CQQG28MH9 HTTP/1.1" 500 1595 "https://clkvh3b46003m01kbalgwwdcy.astronomer.run/dus78e67/xcom/list/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36"
TypeError: can't escape str to binary
cursor.execute(statement, parameters)
File "/usr/local/lib/python3.11/site-packages/sqlalchemy/engine/default.py", line 736, in do_execute
self.dialect.do_execute(
File "/usr/local/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1910, in _execute_context
raise exception
File "/usr/local/lib/python3.11/site-packages/sqlalchemy/util/compat.py", line 211, in raise_
util.raise_(exc_info[1], with_traceback=exc_info[2])
File "/usr/local/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 2138, in _handle_dbapi_exception
self._handle_dbapi_exception(
File "/usr/local/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1953, in _execute_context
^^^^^^^^^^^^^^^^^^^^^^
ret = self._execute_context(
File "/usr/local/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1577, in _execute_clauseelement
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
return connection._execute_clauseelement(
File "/usr/local/lib/python3.11/site-packages/sqlalchemy/sql/elements.py", line 334, in _execute_on_connection
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
return meth(self, args_10style, kwargs_10style, execution_options)
File "/usr/local/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1710, in _execute_20
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
result = conn._execute_20(statement, params or {}, execution_options)
File "/usr/local/lib/python3.11/site-packages/sqlalchemy/orm/session.py", line 1717, in execute
^^^^^^^^^^^^^^^^^^^^^
result = self.session.execute(
File "/usr/local/lib/python3.11/site-packages/sqlalchemy/orm/query.py", line 2916, in _iter
^^^^^^^^^^^^
return self._iter().one()
File "/usr/local/lib/python3.11/site-packages/sqlalchemy/orm/query.py", line 2870, in one
^^^^^^^^^^
ret = self.one()
File "/usr/local/lib/python3.11/site-packages/sqlalchemy/orm/query.py", line 2893, in scalar
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
return self._from_self(col).enable_eagerloads(False).scalar()
File "/usr/local/lib/python3.11/site-packages/sqlalchemy/orm/query.py", line 3176, in count
^^^^^^^
).count()
File "/usr/local/lib/python3.11/site-packages/flask_appbuilder/models/sqla/interface.py", line 398, in query_count
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
count = self.query_count(query, filters, select_columns)
File "/usr/local/lib/python3.11/site-packages/flask_appbuilder/models/sqla/interface.py", line 489, in query
^^^^^^^^^^^^^^^^^^^^^
count, lst = self.datamodel.query(
File "/usr/local/lib/python3.11/site-packages/flask_appbuilder/baseviews.py", line 1078, in _get_list_widget
^^^^^^^^^^^^^^^^^^^^^^
widgets = self._get_list_widget(
File "/usr/local/lib/python3.11/site-packages/flask_appbuilder/baseviews.py", line 1179, in _list
^^^^^^^^^^^^
widgets = self._list()
File "/usr/local/lib/python3.11/site-packages/flask_appbuilder/views.py", line 550, in list
^^^^^^^^^^^^^^^^^^^^^^^^
return f(self, *args, **kwargs)
File "/usr/local/lib/python3.11/site-packages/flask_appbuilder/security/decorators.py", line 137, in wraps
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)
File "/usr/local/lib/python3.11/site-packages/flask/app.py", line 1799, in dispatch_request
^^^^^^^^^^^^^^^^^^^^^^^
rv = self.dispatch_request()
File "/usr/local/lib/python3.11/site-packages/flask/app.py", line 1823, in full_dispatch_request
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
rv = self.handle_user_exception(e)
File "/usr/local/lib/python3.11/site-packages/flask/app.py", line 1825, in full_dispatch_request
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
response = self.full_dispatch_request()
File "/usr/local/lib/python3.11/site-packages/flask/app.py", line 2529, in wsgi_app
Traceback (most recent call last):
{app.py:1744} ERROR - Exception on /xcom/list/ [GET]
Apache Airflow version
Other Airflow 2 version (please specify below)
If "Other Airflow 2 version" selected, which one?
2.9.3
What happened?
An error occurs in AF2.9 when attempting to filter XCom by value
What you think should happen instead?
No response
How to reproduce
Stack trace included:
Operating System
Astro
Versions of Apache Airflow Providers
No response
Deployment
Astronomer
Deployment details
No response
Anything else?
No response
Are you willing to submit PR?
Code of Conduct