Boolean Difference with Bevels I'm new to Blender, and have run into an issue with creating a boolean difference on two objects that both have bevels.  As a test, I start with a simple cube and bevel 4 edges.

I then duplicate the object, resize it, and boolean difference the smaller one from inside the larger.

This works as expected, and I then resized the z-dimension to make it shorter.  I duplicated the original cube and placed on the other.

I now want to take the top one and boolean difference it against the bottom cube, so I move it into position as shown:



This is where the problem occurs.  At this point, if I boolean difference the top object, it doesn't work.  It leaves me with the result shown here:



This is probably something simple, but I can't find a reference anywhere on what's going on or how to fix it.  I'm also experiencing the same thing when I try to boolean difference text on an object face.  The issues seem to be the same in both cases.
Boolean usually is an approximation of the result you are expecting. It has some flaws by default and has a hard time dealing with two geometries that perfectly overlap, non-manifold geometry, etc. It also has a hard time dealing with n-gons which often occur on beveled meshes and meshed text-objects. 

A good way to start is feeding triangulated geometry into the boolean modifier and leaving a good amount of space in between the meshes you are trying to difference from one another. This way the geometry is unique and cannot be interpreted in multiple ways by the boolean modifier.

I personally look at boolean as the absolute last method to achieve any desired geometry. I only use it if any other solution fails. It does not output clean and predictable geometry and usually needs a considerable amount of clean up. 

e.g. you could solve your first shape like this: