Valid token, unsuccessful login with tmi.js

Which authentication flow?

Only a user access token can login to chat when authenticating as a user

This sounds like you have used an App Access Token instead