When more than one player is running (not necessarily playing anything), if a piece of metadata is missing from one player, it will return the data from the other player.
For example, here's the scenario where I can see this problem:
start ncspot, play something, then pause it
start mpv, play something without an artist metadata field, then pause it
get the artist metadata with playerctl metadata artist
see that the returned artist is for the track playing on ncspot
get the title metadata with playerctl metadata title
see that the returned title is for the file playing on mpv
This is by design. In general, if an operation is not supported, playerctl will move to the next player. You can probably get what you want with the formatter with playerctl metadata --format "{{title}}".
When more than one player is running (not necessarily playing anything), if a piece of metadata is missing from one player, it will return the data from the other player.
For example, here's the scenario where I can see this problem:
playerctl metadata artist
playerctl metadata title
playerctl version: 2.4.1