Got a first-generation managed package distributed to a small number of Orgs (<10). In the early design, several classes were setup with the global instead of public attribute thinking we might have several packages that would reuse elements (before packages with the same namespace could share).
Salesforce Support turned on component deletion. Unfortunately, three Apex classes can't be deleted. If I try to change them from global to public, I get this error:
Error: Compile Error: Global/WebService identifiers cannot be removed from managed application: XXXNAMESPACEXXX.Utils at line 1 column 32
Nothing outside of our managed package uses those classes or properties.
We considered deleting the managed package and recreating it. Then we'd uninstall the old managed package from each org and install the brand new one. Not sure this is possible but there's a Delete button when we view the package in the Package Manager.
If we deleted the original managed package (assuming Salesforce doesn't block that), would the orgs that installed the old version of the managed package still be able to function (temporarily) or would their managed packages stop working the second we delete the managed package from the packaging org?
We don't mind the extra work of reinstallation but we don't want to introduce downtime (more than the 15-20 mins to uninstall/reinstall).
Thoughts?