In order to uninstall the package, two things must happen:
- Deactivate the sync by going to the Recurly Admin page and hitting the Deactivate sync button.
- Ensure there are no custom fields, workflow rules, or apex code referencing any objects/fields in the package
- It's very difficult in salesforce to see where a custom field or object is used. The best way to do this is to attempt to uninstall the package, it will then pop up a warning on where fields or objects are being referenced. Open each of those items in a new tab, DELETE them (just deactivating is not enough to allow you to move forward).
- It make take several iterations of this process to remove every reference to the custom fields. Unfortunately, Salesforce doesn't show them all the first time around
- The most difficult scenario:
- If you have a custom code referencing a field, depending on what it is, you may be able to set the code to inactive, but it's more likely you'll have to completely remove the code. If this is the case, then you should have a version backed up in your own version control, but you can create a new Developer sandbox fresh, NOT delete the code from there, then do a fresh push from the environment you were developing from, that did have the custom code with the references removed.