Create a default cube. Create default cylinder.Rotate cylinder 90 degrees and scale length. Place cylinder's origin at the surface of the cube. Use difference boolean.
This is about as simple of a boolean operation as you can get, using two of the simplest default shapes, and it just randomly does not work. Sure, if you tweak the rotation of the cylinder or offset its position ever so slightly, tada it works. This is beyond frustrating.