Our set up is 2016 SQL server and we are using P2P transactional replication among our four servers.
Recently one of the servers is reporting that it is trying to apply command “if COLUMNPROPERTY(OBJECT_ID(‘MSreplication_subscriptions’), ‘distribution_agent’, ‘AllowsNull’) <> 1 BEGIN alter table MSreplication_subscriptions alter column distribution_agent sysname null END” to one of its subscribers and it has failed because “only members of the (null) role can execute this stored procedure”. I believe the distributor agent is trying to modify/update MSreplicatoin_subscriptions table in the subscriber but it has failed to do so. I have followed this microsoft guide to check against our distributor agent's permission and everything seems to be set up correctly. The weird thing is that this distributor has two subscribers and one of them is not having this issue at all with similar agent permission set up.
Please let me know if more information is needed.