There's no risk in non-smokers if you stick to a sane dose. Megadosing it can harm sleep and severely increase blood pressure and heart rate, although these gradually reverse upon cessation. This can take time to manifest. It is why I limit the dose to 500 mcg per day. Older people, such as those over 70, can need more and tolerate more, even 5 mg per day, due to deteriorated absorption.
Also, don't forget the other B vitamins. In truth I take them all.
> There's no risk in non-smokers if you stick to a sane dose.
Also, B12 is water soluble, which generally means that your body is pretty good at flushing out any excess it can't use, making it difficult to overdose on. (Compared to fat-soluble substances.)
A little extra B12 is easily flushed out, but when it's a lot, meaning several milligrams per day for many days, it can quickly and suddenly cause very elevated blood pressure and heart rate, e.g. 160 for both SBP and HR. This effect is easy to undo using a good beta blocker, e.g. atenolol, but if one doesn't, then an emergency hospital visit is required. The point is that despite being water soluble, this adverse effect does happen.
Even at just one milligram per day, it can significantly harm sleep.
It has a high circulating half life of six days, which implies that it can really build up if repeatedly megadosed in this period.