The bug
When a sapling tries to grow (for example when using bone meal, or by being ticked), it tries to grow on the highest block in the x/z column it is located in. If that block is a block that it can grow on, the sapling will disappear and the tree will be generated on top of that block. If it isn't, the sapling will never be able to grow.
This issue seems to affect all types of trees except large oak trees, balloon oak trees, dark oak trees, large spruce trees and large jungle trees.
To reproduce
Plant a sapling on the ground
Place a stone block a few blocks above the sapling
Try to grow the sapling using bone meal
→ ❌ The sapling won't growReplace the stone block with a dirt block
Try to grow the sapling using bone meal
→ ❌ The sapling disappears and the tree will be generated on top of the dirt block
Related issues
is duplicated by
relates to
Attachments
Comments

Thank you for your report!
We're actually already tracking this issue in MC-163403, so I resolved and linked this ticket as a duplicate.
If you would like to add a vote and any extra information to the main ticket it would be appreciated.
If you haven't already, you might like to make use of the search feature in the future to see if the issue has already been reported.
Quick Links:
📓 Issue Guidelines – 💬 Community Support – 📧 Customer Support – ?☃DCD6 Game Wiki

Not sure it's the same issue, as my tree's won't grow even when there is absolutely nothing within 7+ blocks of the sapling. That ticket seems to be about blocks being near the sapling causing it not to grow.
[media]
I agree, even a sapling on the surface will not grow with a single solid block placed above it at build limit. (Even when bonemealed for a full minute.)

Yeah I only really noticed because i was building a tree farm and had my random tick rate set to like 1000 or so while testing. Normally tree's grew pretty much instantly, but nothing was happening with those I mentioned.
Reopened the ticket.
Can confirm. I've seen that MC-164293 and MC-164256 have been reported, and that way I found out why this is happening: The sapling will always attempt to grow at the highest block in the world at that x/z coordinate. If it's not a block that saplings can grow on, it will just never grow. If it's a block it can grow on, the sapling will disappear and the tree will be spawned on top of that block. I'll edit the ticket so that it includes these new findings.

Large oaks and balloon oaks are also able to grow beneath a roof.
And dark oaks.

Thank you for reopening the issue and I was unaware the tree's would appear at the highest block if possible to grow. I can confirm though that the large and balloon oak tree's will grow beneath invalid blocks. Also this issue apparently goes back as far as 19w41a as well.
I turned back my versions and the last time tree's worked normally was the 19w40 snap shot.

Confirmed in 19w44a.

Still present in 19w44a. Saplings wont grow if there are blocks (excluding dirt, in which case it will teleport onto that block) above it.