3

I have a problem. I am trying to deploy a bunch of stuff to a sandbox, and getting

ControlledByParent is not a valid sharing model for Asset

Problems are:

  1. Assets absolutely accept “Controlled By Parent” as an allowed value
  2. The Asset object is already set to “Controlled by Parent” in the dest. org
  3. This has worked in two Dev sandboxes already. The problem occurs while hitting a Partial Copy sandbox

Also, note that I am deploying the Account object and all the asset fields in the same deploy, so the typical workaround (add the M/D field to the deploy) does not apply here.

PS: I am using sfdx to deploy, against source-tracked sandboxes. This could be related to the fact that STSboxes is a beta feature but I am curious to see if anybody has seen this yet

3
  • 2
    I haven't seen this issue but one thing I would try is to change the help text or description slightly for Account field on Asset to mark it as changed and ensure it is not left by SFDX from deploy. Then try the deploy again.
    – manjit5190
    Commented Sep 16, 2020 at 21:21
  • That’s a good suggestion, will give it a shot Commented Sep 17, 2020 at 14:27
  • @SebastianKessel were you able to solve this?
    – McD
    Commented Aug 19, 2021 at 18:59

2 Answers 2

2

The issue has to do with the sandbox being Partial Copy.

Because Partial Copy sandboxes only pull 10,000 records per object, if an Asset is the child of a parent Account that is not copied to the Partial Copy sandbox from production, it essentially becomes orphaned.

Because "ControlledByParent" requires each record for a given child object to have a parent Id present for the controlling object, you will encounter an error either if you try to deploy the Asset object to the Partial Copy sandbox ~or~ if you attempt to manually change the Sharing Settings of the Asset object to "Controlled by Parent" directly in the sandbox.

To reproduce, simply change the Org-Wide Sharing Defaults for the Asset object to Private, and then set them back to "Controlled by Parent." You will receive the following error:

Error: Before you can set the organization-wide sharing default to Controlled by Parent, all assets must have a parent account or contact.

The easiest workaround around to this is to abandon the use of the Partial Copy sandbox and use a Developer / Developer Pro sandbox with sample data, but you could also export all Asset records that do not have a valid value for the AccountId field, seed those records with another AccountId, and then reimport the Asset records so that you have complete data. This would allow you to then set the default access for Assets to "Controlled By Parent."

0

I was able to solve this by simply changing the sharing settings of the target org.

The bug is in the fact that you are allowed to select an invalid option in the setup. Asset is not a detail object, that option being there makes no sense.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .