The hint lists the roles in the rows that were actually loaded, so it is telling you the file you are looking at is not the file that was read.
data/<env>/<name>.csv wins over data/common/<name>.csv, and they do not merge — the environment file replaces the common one wholesale. You almost certainly have a data/staging/users.csv with two rows in it, and the admin lives only in data/common/users.csv.
Add the admin row to the staging file, or delete the staging file if it was not doing anything the common one does not.
Two related things while you are in there:
admin has to be listed under tags.roles in the project yaml or lint rejects the tag before the run starts.@user:<role> leases before the browser context is created, which is why this fails ahead of the first step rather than inside it. That is deliberate: the scenario starts already logged in.