As per Salesforce - "Salesforce offers different types of packages, and unlocked packages are especially suited for internal business apps. Unless you plan to distribute an app on AppExchange, an unlocked package is the right package type for most use cases." - https://developer.salesforce.com/docs/atlas.en-us.sfdx_dev.meta/sfdx_dev/sfdx_dev_unlocked_pkg_intro.htm

However our customer is keen on exploring 2nd Gen Managed package for Internal app development and Internal distribution for below reason :

a. No one other than Team A which is responsible for App-A , should be able to modify/update the App-A package metadata in the subscriber org. Similarly for any other package e.g. Core , App-B etc.

Why does Salesforce recommend Unlocked package for Internal app development ?

Why is 2nd Gen Managed packaging not suited for Internal app development and internal distribution ( we can have region specific Orgs soon ) ?

  • A significant reason: if you don't put your managed package through security review, you cannot get debug log details out of it to help you track down problems on production.
    – Phil W
    Commented Feb 26 at 14:37

1 Answer 1


There's two main reasons. First, as Phil says, you can't debug managed packages very easily, which can make troubleshooting much harder than it needs to be. Second, managed packages have more restrictions on the changes you can make with the metadata. In an unlocked package, you can just delete an obsolete field, no problem. With a managed package, you have to engage support just to enable the option to delete metadata, and those deletions are then still restricted. The ISV rules are more strict because there's a greater possibility of placing a subscriber's org in a state that may well be unrecoverable or inoperable. Unlocked packages carry much less risk in that regards.

You must log in to answer this question.

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