Boolean modifier is not applied to the array objects I have a cylinder and I want to create concave parts around it.
Here what I did:


add a sphere and position it on the cylinder surface, so only one half of the sphere is visible
set the 3D cursor to the sphere
set the 3D cursor XZ axis to 0 (so Y is the projection of the sphere)
set the origin of the sphere to the 3D cursor
add an empty (arrow) in this position
select the sphere and add a modifier (array) using the empty as object offset (x6)
rotate the empty to 60° to evenly space the 6 spheres
apply the modifier and remove the empty


now I have all the 6 sphere around the cylinder's surface, and only one half of them is outside.
Time to subtract them!


select the ciylinder
add a boolean modifier (difference)
select the sphere as object
apply
remove the sphere


Well, it partially works: only the original sphere is actually subtracted from the cylinder. The other 5 spheres (created with the array modifier) are not subtracted.

Why?
According to some other answers, this is due to non-manifold geometry. Those spheres are not connected to form one closed, watertight object that can be subtracted from the cylinder.
I have a similar issue with a simple array of nine (3x3) spheres subtracted from a plane with a solidify modifier.
This is a rather important and annoying shortcoming of the Boolean modifier, IMO.