Git force push tag when the tag already exists on remote

I have a tag already pushed onto the remote. When another user creates the same tag and tries to push, the push will fail because the tag already exists on the remote.

But I thought if I did --f force tag push, it should work. But that is not what I see.

I think I have to do this.

 Create tag
 Push tag -> If push fails -> Delete tag on remote
                           -> push tag again.

Is this correct? Isn`t force pushing a tag supposed to take care of this?

I am using annotated tags with

 git -a v1.0 -f -m "message"

This will force push all the tags and overwrite the existing ones.

git push -f --tags

In my case, remote was rejecting an force push when the tag already exists.

So, when the push was rejected, I did

git push --delete origin tagname 

and pushed the new tag.

Please see Torek's comment to my question. There is a case when remote can reject the delete too.