Why do people sometimes hold unjustified beliefs and make harmful choices? Three hypotheses include (a) contemporary incentives in which some errors cost more than others, (b) cognitive biases evolved to manage ancestral incentives with variation in error costs and (c) social learning based on choice frequencies. With both modelling and a behavioural experiment, we examined all three mechanisms. The model and experiment support the conclusion that contemporary cost asymmetries affect choices by increasing the rate of cheap errors to reduce the rate of expensive errors. Our model shows that a cognitive bias can distort the evolution of beliefs and in turn behaviour. Unless the bias is strong, however, beliefs often evolve in the correct direction. This suggests limitations on how cognitive biases shape choices, which further indicates that detecting the behavioural consequences of biased cognition may sometimes be challenging. Our experiment used a prime intended to activate a bias called ‘hyperactive agency detection’, and the prime had no detectable effect on choices. Finally, both the model and experiment show that frequency-dependent social learning can generate choice dynamics in which some populations converge on widespread errors, but this outcome hinges on the other two mechanisms being neutral with respect to choice.