π‘οΈ Fixing ValueError: password cannot be longer than 72 bytes in Python 3.12 / 3.13 ( passlib + bcrypt )
When deploying FastAPI authentication routes using passlib[bcrypt] on Python 3.12 or Python 3.13 , newer versions of bcrypt ( >= 4.1.0 ) raise:
ValueError: password cannot be longer than 72 bytes, truncate manually if necessary
during passlib 's internal detect_wrap_bug startup check.
β
The Instant Production Fix
Pin bcrypt==4.0.1 alongside passlib[bcrypt] in your requirements.txt :
fastapi uvicorn passlib[bcrypt] bcrypt==4.0.1 python-jose[cryptography] pydantic[email]
π Building a FastAPI + AI Micro-SaaS in 2026?
Don't waste 30+ hours debugging Python 3.13 auth, JWT bearer guards, SaaS user credit quotas, and Google Gemini structured JSON outputs from scratch:
π Download the Free 2026 FastAPI + Gemini Architecture Blueprint ($0)
π Get ShipAI v2.0 Commercial Micro-SaaS Boilerplate (30% OFF with code BLUEPRINT30 )
π Try the Live Sandbox, Install via PyPI, or Grab the Full Source Code
πβ¦