In my managed ISV package I have many deprecated classes. Some of the are global and I cannot change their signature and just mark them as @deprecated.

To make it more obvious that a class is deprecated now I also tried to remove most of the code. When I hit save in my IDE I got the error:

Developer name already exists for given entity or has been previously used. Please choose a different name.

What does that mean?!

2 Answers 2


I have had this exact problem. Once a class has been marked deprecated and included in a Managed Package, you can no longer make any changes to it. Not even changes to the internals of a method.

I logged a case (#08766706) with Salesforce about this. The response I got was:

It appears in its current form it is a limitation of the compiler, and it cannot be changed in the current version.

That being said, the R&D team is working on an internal compiler upgrade that will probably be released for Summer '13 (the next release), which will address many issues, including this one.


Just make the changes to the code in the app, and see what happens.

  • From Daniel's answer it looks as though no changes can be made to the code: method signatures or bodies!
    – Matt Lacey
    Commented May 20, 2013 at 6:46
  • Easy on the down-vote! I put in mine first, so I had no way to look into the future to see what he (would) put. Commented Jun 16, 2013 at 21:27
  • Did that just get voted today? Does seem like overkill whoever it was!
    – Matt Lacey
    Commented Jun 17, 2013 at 2:34

You must log in to answer this question.

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