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.
Bu
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.