It's probably worth noting that this extends to basically any block occupying the same space, including ones which are completely transparent like grass or ferns. I suspect this is probably to keep the giant spruce trees with leaves on the bottom level from intersecting any blocks, but spruce saplings are ignored in that check anyway so I don't see why that couldn't be extended to include other blocks.
That's what I thought too, but this happens even if my head is literally inside the Allay.
This is intended behavior, the shrieker checks a random set of blocks to find one that's spawnable, and if it picks all air blocks then it fails.
Still on 1.19
Oh yeah, it was mobGriefing, I forgot that I'd even turned it off. I feel a bit silly now 😞
I'll add a video showing this tomorrow
As I said before, even if that's the case, it doesn't happen consistently between allays even in the exact same situation, which (at least to me) seems like it should be addressed.