Try Serpent Free
← Salesforce DevOps Glossary

Deprecate (Metadata)

Marking a metadata component as no longer supported, without deleting it, so existing subscribers who reference it aren't broken.

Definition

Deprecating a metadata component, an Apex class or method via the @deprecated annotation, a custom field, or another package component, marks it as no longer intended for new use without actually removing it. Deleting a component a subscriber org already references would break their customizations outright, so managed packages favor deprecation: the component disappears from new development surfaces, like Setup lists or code completion, but continues to function for whatever already depends on it. It's a one-way door in practice; once subscribers have built on a component, an ISV typically can't safely remove it until a major version change gives customers a clear migration path off it. Our metadata management guide covers this alongside other package lifecycle decisions.

In practice

How it works in Serpent

Serpent's dependency detection flags what still references a component before a team considers deprecating or removing it, so the decision is based on actual usage across the codebase rather than a guess. See release management in Serpent for how dependency-aware changes are sequenced.

Release status dashboard in Serpent
Common questions

Deprecate (Metadata), answered

Can a deprecated field be un-deprecated later?
In most cases, yes, deprecation is reversible on the metadata itself; the harder part is usually that subscribers have already built around its absence.

Start free. No credit card, no install, no commitment.

Set up in under 15 minutes. No DevOps hire needed.

Curious about faster shipping before you dive in? Let's talk

Commitment free!