Invalid username or password, errorCode:0 but I'm using correct credentials
Ok I've solved the issue. PHP was trying to save the sessions into a non-existing directory.

To check the current session path, I've added var_dump(session_save_path()); in Craft's /public/index.php (was set to /var/lib/php-fpm/session).

Fix was to update session.save_path setting in the php.ini to point to the right directory with correct permission.

Hope this helps someone in the future.