Boolean modifier doesnt render correctly
edited to answer the question better
go into latest version of blender (2.91) and try using the new booleans they added (Fast, Exact) i havent used these very much so it might not work, and also make sure that the meshes arent the same height or there will be weird artefacts so try making the subtracting mesh and make taller, this is because the boolean system has problems working with meshes that are exactly the same, (like duplicating an object and leaving it at the same place, blender cannot handle the two meshes and breaks)
for the shading artifacts i recomend recalculating the outside normals go into edit mode, select all faces or vertices, then select mesh, normals, recalculate outside, hope this edit helps