Supabase .limit prevents row being found

I’m using supabase in a Next.js app.

In my login flow the user submits a form containing their username/password. Within my api route I use .toLowerCase() on the username then pass it to the supabase api to see if a user exists with that username as follows;

let { data: staff, error } = await supabase
    .from('staff')
    .select('*')
    .eq({ username: lowercaseUsername })

This works fine – the user is found, password/password hash is compared and I get logged in.

However when I add a .limit(1) to the query, my row in the database is no longer found.

let { data: staff, error } = await supabase
    .from('staff')
    .select('*')
    .eq({ username: lowercaseUsername })
    .limit(1)

Can anyone shed any light on why this might be?