royspeedy opened a new issue, #42123:
URL: https://github.com/apache/superset/issues/42123
### Bug description
### Bug description
SQL Lab query execution fails with error "invalid username-password pair or
user is disabled." but I can prove that the database connection itself works
perfectly fine.
### How to reproduce the bug
1. Create a PostgreSQL database connection in Superset
2. Test connection - SUCCESS
3. Browse database/schema - SUCCESS
4. Open SQL Lab, write `SELECT 1;`, click Run - FAILS with error
### Expected behavior
Query should execute successfully since the database connection works.
### Actual behavior
Error message: "invalid username-password pair or user is disabled."
### Proof that database connection works
I tested directly in `superset shell`:
```python
from superset import db
from superset.models.core import Database
row = db.session.query(Database).filter_by(id=1).first()
# Test 1: get_sqla_engine() - SUCCESS
with row.get_sqla_engine() as engine:
result = engine.execute("SELECT 1").scalar()
print(result) # Output: 1
# Test 2: get_raw_connection() - SUCCESS
with row.get_raw_connection(catalog=None, schema=None, source="sql_lab") as
conn:
cur = conn.cursor()
cur.execute("SELECT 1")
print(cur.fetchall()) # Output: [(1,)]
```
### Database configuration
- Database name: SRS
- SQLAlchemy URI:
`postgresql+psycopg2://postgres:[email protected]:5432/booking`
- Extra: `{"allows_virtual_table_explore":true}`
- Impersonate user: False
- Allow DML: False
- Allow CTAS: False
### Pod logs
superset.exceptions.SupersetErrorsException: [SupersetError(
message='invalid username-password pair or user is disabled.',
error_type=<SupersetErrorType.GENERIC_DB_ENGINE_ERROR>,
level=<ErrorLevel.ERROR>,
extra={'engine_name': 'PostgreSQL', 'issue_codes': [{'code': 1002,
'message': 'Issue 1002 - The database returned an unexpected error.'}]}
)]
Important: PostgreSQL server logs show NO connection attempts, which means
the error is thrown inside Superset before reaching PostgreSQL.
### Troubleshooting steps already taken
1. ✅ Verified `get_sqla_engine()` works in superset shell
2. ✅ Verified `get_raw_connection()` works in superset shell
3. ✅ Checked PostgreSQL logs - no connection attempts
4. ✅ Set `SQLLAB_BACKEND_PERSISTENCE=false` - still fails
5. ✅ Database configuration looks normal (no impersonation, no DML, no CTAS)
### Environment
- Superset version: (run `pip show apache-superset` or check the About page)
- Kubernetes deployment
- PostgreSQL 12+ (or your version)
### Additional context
This appears to be a Superset internal error, not a database connection
issue. The error message is misleading because:
1. Database connection works fine when tested directly
2. PostgreSQL never receives the connection attempt
3. The error seems to be thrown in the SQL Lab execute path before reaching
the database
Please help identify where in the SQL Lab execute flow this error is being
thrown.
### Screenshots/recordings
_No response_
### Superset version
master / latest-dev
### Python version
3.9
### Node version
16
### Browser
Chrome
### Additional context
_No response_
### Checklist
- [ ] I have searched Superset docs and Slack and didn't find a solution to
my problem.
- [ ] I have searched the GitHub issue tracker and didn't find a similar bug
report.
- [ ] I have checked Superset's logs for errors and if I found a relevant
Python stacktrace, I included it here as text in the "additional context"
section.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]