One case worth flagging separately because none of the above applies: inside CI, or a container.
There is no agent, no home directory you expect, and often no known_hosts, so the connection can fail before authentication for a reason that reports as a key problem. The pattern that works is to write the key to a file at a known path with strict permissions, point at it explicitly, and pre-populate the host key rather than disabling checking.
Disabling host key verification is the shortcut everyone takes and it removes the only protection you had against connecting to the wrong server.