So instead of trying to force the players to not metagame and try to force the players to act out as if they have been deceived when they haven't, I simply deceive them myself and don't leave it up to a die role. Their character may not be deceived, and if they are wise and fortunate I may tell them, "No, you are pretty sure the NPC is lying." But the reverse isn't really possible. I can't tell them, "No, your character believes them" if in fact the player doesn't, because then they have to metagame what their character would do and that's not really possible because in reality even if deceived they might take "trust but verify" steps or blindly do things that would reveal the deceit. After all, when the players themselves are deceived that is how they behave. So why should I ask them to try to imagine how they'd behave in the absence of knowing the answer to the riddle? They can't. It's not fair and it's really impossible. Ultimately that would end up being based on my opinion of how they would behave, and why should that rule the day?
So I don't have any "no metagaming" rules generally, not just in this situation.