Sometimes I find I have to mix deps.unlock <package name> before I run mix deps.update <package_name>. I do think there are some hex resolver issues (which I know the team is working on) which might be a contributor to the situation.
Something that’s worth mentioning in these kinds of threads:
mix deps.clean --unlock --unused
Which removes all unused dependencies from your mix.lock file and deps directory. I feel this has to be automatically invoked after most mix deps.* commands but I am probably missing something very important because it hasn’t happened yet.