When VTP sends updates, they are sent without tags. So (assuming the native VLAN is VLAN 1) if you have restricted your trunk port at the receiving end with a command like:
switchport trunk allowed vlan 2,10,20
it will drop all untagged traffic – including the VTP updates.
Solution
switchport trunk allowed vlan add 1
You can always change the native vlan to some other number (on both sides of the trunk) and VTP updates should flow if you disable VLAN 1 like we do.