We also have an issue where Salesforce Support hasn't been a lot of help. We have some Apex code that was developed by a Salesforce contractor. We have a custom object and we have Apex code making a Manual Sharing rule for that object to a Community Power user. We have noticed that (without the OwnerId changing on the custom object mind you), the sharing rules are no longer there. I have been told that if the OwnerId changes on a record, all manual sharing rules are removed. I am hoping someone here can tell me if that is true or not.
The Apex code is making a manual sharing rule.
Custom_Obj__Share platSharingRule = new Custom_Obj__Share();
platSharingRule.ParentId = cont.Id;
platSharingRule.UserOrGroupId = usr.Id;
platSharingRule.AccessLevel = 'Read';
platSharingRule.RowCause = Schema.Custom_Obj__Share.RowCause.Manual;
My question is should we be using Manual sharing for the Row Cause? Should this be using an Apex sharing rule?