So, I was trying to log into my Home Assistant from a different browser this afternoon and kept getting Invalid username/password errors. When I went into Settings > People in a browser I was already logged in on to reset my password, I started getting “User does not exist” errors. Despite all the users existing in people/users, none of them had login credentials.
Long story short, I was able to restore auth from backup, but auth_provider.homeassistant wasn’t in the backup. There is probably an easier way to do this, but (with Claude.ai’s help) I manually recreated auth_provider.homeassistant and moved it into /config/.storage/ using the CLI. According to Claude, if you run into the same problem, keep this in mind:
"This version of HA stores passwords in auth_provider.homeassistant as base64-encoded bcrypt hashes, not raw bcrypt strings. Many older guides and scripts generate raw bcrypt hashes ($2b$12$…) which will fail silently with a binascii.Error in the logs.
The correct way to generate a password entry:
import bcrypt, base64
hashed_bytes = bcrypt.hashpw(password.encode(), bcrypt.gensalt())
stored = base64.b64encode(hashed_bytes).decode()
Also note: auth_provider.homeassistant stores users as a list of {username,
password} objects, not a dict keyed by username."
Hopefully this will save someone who runs into a similar situation a little time.
I have NO CLUE what caused the original problem.