GitHub user zoomingrocket edited a discussion: Airflow v3 - Issue with FAB Auth 
– Missing "session" Table After Fresh Install

Hi All,

I'm a first-time Airflow user and could use some help. We set up Airflow using 
the PyPI method with version 3.0.4 and constraints, following the official 
docs:  
```bash
pip install "apache-airflow[celery]==3.0.4" --no-cache-dir --constraint 
"https://raw.githubusercontent.com/apache/airflow/constraints-3.0.4/constraints-3.9.txt";
```

We also installed:
```bash
pip install psycopg2 asyncpg apache-airflow-providers-fab
```

After updating `airflow.cfg` with our Postgres `sql_alchemy_conn`, we ran 
`airflow db migrate`. Initial setup worked fine using SimpleAuth, and we 
verified the UI with a basic admin user.

Later, we switched to FAB authentication by updating:
```ini
auth_manager = 
airflow.providers.fab.auth_manager.fab_auth_manager.FabAuthManager
```

On first startup, roles were provisioned and we added a user via `airflow users 
create`. However, after restarting the API server, the UI now shows:  
**"Oops! Something bad has happened."**

<img width="1203" height="503" alt="image" 
src="https://github.com/user-attachments/assets/27037439-8ac0-4261-8e4d-720cb9f791f9";
 />


Logs indicate the **"session" table is missing**, which is confusing since this 
is a fresh install and we ran `airflow db migrate`.

```
[2025-09-11T20:33:05.173+0000] {app.py:1744} ERROR - Exception on /login/ [GET]
Traceback (most recent call last):
  File 
"/airflow/poc/3.0.4/lib64/python3.9/site-packages/sqlalchemy/engine/base.py", 
line 1910, in _execute_context
    self.dialect.do_execute(
  File 
"/airflow/poc/3.0.4/lib64/python3.9/site-packages/sqlalchemy/engine/default.py",
 line 736, in do_execute
    cursor.execute(statement, parameters)
psycopg2.errors.UndefinedTable: relation "session" does not exist
LINE 2: FROM session
             ^


The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/airflow/poc/3.0.4/lib64/python3.9/site-packages/flask/app.py", line 
2529, in wsgi_app
    response = self.full_dispatch_request()
  File "/airflow/poc/3.0.4/lib64/python3.9/site-packages/flask/app.py", line 
1826, in full_dispatch_request
    return self.finalize_request(rv)
  File "/airflow/poc/3.0.4/lib64/python3.9/site-packages/flask/app.py", line 
1847, in finalize_request
    response = self.process_response(response)
  File "/airflow/poc/3.0.4/lib64/python3.9/site-packages/flask/app.py", line 
2344, in process_response
    self.session_interface.save_session(self, ctx.session, response)
  File 
"/airflow/poc/3.0.4/lib64/python3.9/site-packages/airflow/providers/fab/www/session.py",
 line 33, in save_session
    return super().save_session(*args, **kwargs)
  File 
"/airflow/poc/3.0.4/lib64/python3.9/site-packages/flask_session/sessions.py", 
line 543, in save_session
    saved_session = self.sql_session_model.query.filter_by(
  File 
"/airflow/poc/3.0.4/lib64/python3.9/site-packages/sqlalchemy/orm/query.py", 
line 2824, in first
    return self.limit(1)._iter().first()
  File 
"/airflow/poc/3.0.4/lib64/python3.9/site-packages/sqlalchemy/orm/query.py", 
line 2916, in _iter
    result = self.session.execute(
  File 
"/airflow/poc/3.0.4/lib64/python3.9/site-packages/sqlalchemy/orm/session.py", 
line 1717, in execute
    result = conn._execute_20(statement, params or {}, execution_options)
  File 
"/airflow/poc/3.0.4/lib64/python3.9/site-packages/sqlalchemy/engine/base.py", 
line 1710, in _execute_20
    return meth(self, args_10style, kwargs_10style, execution_options)
  File 
"/airflow/poc/3.0.4/lib64/python3.9/site-packages/sqlalchemy/sql/elements.py", 
line 334, in _execute_on_connection
    return connection._execute_clauseelement(
  File 
"/airflow/poc/3.0.4/lib64/python3.9/site-packages/sqlalchemy/engine/base.py", 
line 1577, in _execute_clauseelement
    ret = self._execute_context(
  File 
"/airflow/poc/3.0.4/lib64/python3.9/site-packages/sqlalchemy/engine/base.py", 
line 1953, in _execute_context
    self._handle_dbapi_exception(
  File 
"/airflow/poc/3.0.4/lib64/python3.9/site-packages/sqlalchemy/engine/base.py", 
line 2134, in _handle_dbapi_exception
    util.raise_(
  File 
"/airflow/poc/3.0.4/lib64/python3.9/site-packages/sqlalchemy/util/compat.py", 
line 211, in raise_
    raise exception
  File 
"/airflow/poc/3.0.4/lib64/python3.9/site-packages/sqlalchemy/engine/base.py", 
line 1910, in _execute_context
    self.dialect.do_execute(
  File 
"/airflow/poc/3.0.4/lib64/python3.9/site-packages/sqlalchemy/engine/default.py",
 line 736, in do_execute
    cursor.execute(statement, parameters)
sqlalchemy.exc.ProgrammingError: (psycopg2.errors.UndefinedTable) relation 
"session" does not exist
LINE 2: FROM session
             ^

[SQL: SELECT session.id AS session_id_1, session.session_id AS 
session_session_id, session.data AS session_data, session.expiry AS 
session_expiry
FROM session
WHERE session.session_id = %(session_id_1)s
 LIMIT %(param_1)s]
[parameters: {'session_id_1': '5cf8bbb5-26df-4c8a-b6ae-1ea61bc20456', 
'param_1': 1}]
(Background on this error at: https://sqlalche.me/e/14/f405)
[2025-09-11T20:33:05.179+0000] {app.py:1852} ERROR - Request finalizing failed 
with an error while handling an error
Traceback (most recent call last):
  File 
"/airflow/poc/3.0.4/lib64/python3.9/site-packages/sqlalchemy/engine/base.py", 
line 1910, in _execute_context
    self.dialect.do_execute(
  File 
"/airflow/poc/3.0.4/lib64/python3.9/site-packages/sqlalchemy/engine/default.py",
 line 736, in do_execute
    cursor.execute(statement, parameters)
psycopg2.errors.UndefinedTable: relation "session" does not exist
LINE 2: FROM session
```

Any guidance on what we might have missed or common gotchas would be greatly 
appreciated!

Thanks in advance! 




GitHub link: https://github.com/apache/airflow/discussions/55549

----
This is an automatically sent email for [email protected].
To unsubscribe, please send an email to: [email protected]

Reply via email to