I am using SQL model to create my tables and use as an ORM. I can create the tables fine but if I try any operation I get a sqlalchemy.exc.UnboundExecutionError: Could not locate a bind configured on mapper Mapper[User(user)], SQL expression or this Session. I have used SQLmodel with postgres before and never run in to this. Here is the code: from contextlib import contextmanager from logging import getLogger from typing import Annotated, Generator from fastapi import Depends, HTTPException from opentelemetry import trace from sqlalchemy.exc import SQLAlchemyError from sqlalchemy.orm import sessionmaker from sqlmodel import SQLModel, Session as SQLModelSession, create_engine from app.config import settings # from telemetry import TracingContextManager from app.auth.models import User from app.orders.models import Order logger = getLogger(__name__) tracer = trace.get_tracer(__name__) # Create engine with connection pooling for better performance under load engine = create_engine( settings.DATABASE_URL, echo=settings.DB_ECHO, # Only enable echo in development pool_pre_ping=True, # Check connection validity before using it pool_recycle=3600, # Recycle connections after 1 hour pool_size=10, # Maximum number of connections in the pool max_overflow=20, # Maximum number of connections that can be created beyond pool_size ) SessionLocal = None def create_db_and_models() -> None: """Create database tables if they don't exist.""" try: SQLModel.metadata.create_all(engine) logger.info("Database tables created successfully") except Exception as e: logger.error(f"Error creating database tables: {e}") raise def get_session_local(): """Get a new database session.""" global SessionLocal if SessionLocal is None: logger.info("Database session begun.") SessionLocal = sessionmaker(class_=SQLModelSession, autoflush=False, bind=engine) return SessionLocal def get_session(): """Dependency for FastAPI routes that need a database session.""" db = get_session_local()() try: yield db logger.debug("Database session committed") except SQLAlchemyError as e: logger.error(f"Database error in request: {e}") db.rollback() raise HTTPException(status_code=500, detail="Database error") except Exception as e: logger.error(f"Unexpected error in database session: {e}") db.rollback() raise finally: logger.debug("Closing database session") db.close() # Dependency for FastAPI routes DbSession = Annotated[SQLModelSession, Depends(get_session)] if __name__ == "__main__": create_db_and_models() [Edit: I have tried using with Session(engine) as db too. Continue reading...