Turning DFFS off & uninstalling
Removing Modern DFFS is reversible and safe at every step — provided you do it in order.
No list data is ever lost. Deactivating DFFS restores the standard SharePoint forms — your list, its columns, and every item stay exactly as they are. What stops is the enhanced form: tabs, rules, computed values, repeating sections and the rest.
Deactivate before you remove the app. This part is not optional.
Activating DFFS writes its component ID into three properties on each content type — NewFormClientSideComponentId, DisplayFormClientSideComponentId and EditFormClientSideComponentId. Those properties live on the content type in SharePoint, not in the app.
Remove the app while they are still set and SharePoint keeps trying to load a form customizer that no longer exists — those forms stop rendering. Deactivating clears the properties, which is what hands the standard SharePoint form back. Do that first, everywhere, and removal is clean.
If it has already happened, it isn’t a permanent state and no data is affected — the properties can be cleared afterwards. See already removed the app? for a script that does it.
Work through as much of this as you need. Step 1 alone turns DFFS off safely; steps 3 and 4 are cleanup; step 5 removes the app.
1. Turn DFFS off for a list
Open the DFFS configuration for the list, go to the Activate tab, and open Install DFFS. You get a table with one row per content type on the list, and a checkbox for each form — New item form, Display and Edit.
Uncheck every box. Each one you clear removes the DFFS component ID from that content type’s form property and hands that form back to SharePoint.
Check every row, not just the first. A list with several content types has a row for each, and DFFS may be active on only some of them. Any row left checked keeps a live reference to the app — which is exactly what breaks if the app is removed later.
Sealed content types are skipped by the panel and can’t hold a DFFS form reference, so there is nothing to clear on those.
Unchecking is per form, so you can also hand back just one — for example, keep the enhanced Edit form while letting Display go back to standard.
2. Turn DFFS off across many lists at once Enterprise / Pro add-on
Going list by list is fine for a handful. For a whole site — or a whole tenant — use the Modern DFFS Admin tool’s Activate DFFS tab instead.
- Select any number of lists and libraries, then use Deactivate selected. It restores the default SharePoint forms on everything you selected.
- Colored badges show whether each form is currently fully on, on for some content types (partial), or off — so you can see what you’re about to change before you apply it.
- Every action is confirmed first, and the result is summarized (deactivated / unchanged / skipped / failed).
Activation is additive; deactivation is explicit. The Activate action only ever turns forms on — it never silently switches an active form off. Deactivate selected is the off switch.
3. Delete the stored configurations
Deactivating leaves the saved configuration in place, which is usually what you want — reactivating brings the form straight back. If you’re removing DFFS for good and want the site tidy, delete the configurations too.
Order matters. Uninstall DFFS from the form first, then delete its configuration. DFFS blocks the other order and tells you so: “You must uninstall DFFS from this form using the Install DFFS tab (found under Activate) before you can delete the configuration.”
Deleting a configuration sends it to the recycle bin, so it can be restored if you change your mind.
Every configuration for a site is stored in one list, DFFSConfigurationList. If you want the whole thing gone rather than item by item, delete that list — but only after DFFS is deactivated everywhere on the site, or forms will look for a configuration that no longer exists.
4. Remove the license code
The license code lives in its own list, DFFS_LICENSE, one per site collection. Deleting it removes the stored code from that site.
Keep a copy of the code before deleting the list if the license is still valid — you’ll need it again to reactivate, and it isn’t recoverable from the product once the list is gone.
On Enterprise with a central site, the license may come from DFFS_Settings on ModernDFFS_Central instead of a per-site list. See the central site setup guide — removing the central site withdraws the license from every site that relied on it.
5. Remove the app
Do this last. Before you start, confirm DFFS is deactivated on every list and content type that used it — the Admin tool’s status badges (step 2) are the quickest way to be sure across a site or tenant.
Then delete the package from the app catalog you uploaded it to — your tenant app catalog, or the site collection’s Apps for SharePoint library. See where to install if you’re not sure which.
Deleting it from the catalog is the only removal step you need. Once DFFS is deactivated everywhere, there is nothing left on the individual sites to undo.
If you created a site collection app catalog just for DFFS and no longer need it, an administrator can switch it off with Remove-SPOSiteCollectionAppCatalog -Site <site URL>. Despite the name it doesn’t delete anything — the Apps for SharePoint library stays, but solutions in it can no longer be deployed or used.
Already removed the app, and forms won’t render?
Nothing is lost and nothing is permanent. Your items, columns and history are untouched — the content types are simply still pointing at a component ID that isn’t installed any more. Clear those three properties and the standard SharePoint forms come straight back.
Two ways to fix it. If it’s a handful of lists, the quickest is to put the package back in the app catalog, open Activate → Install DFFS on each affected list, uncheck every box on every content type row, then remove the package again.
For anything larger, clear the properties directly with PnP.PowerShell — no reinstall needed:
Connect-PnPOnline -Url https://contoso.sharepoint.com/sites/YourSite -Interactive -ClientId <your-client-id>
$list = "Your List"
Get-PnPContentType -List $list | ForEach-Object {
Set-PnPContentType -List $list -Identity $_.Id.StringValue `
-NewFormClientSideComponentId "" `
-DisplayFormClientSideComponentId "" `
-EditFormClientSideComponentId ""
}
Run it against each list that had DFFS active. Clearing a property that was already empty does no harm, so it’s safe to run across every list on a site if you’re unsure which ones were affected.
The same three properties are what the Install DFFS panel writes and clears, so this is the identical change — just applied without the UI. As with the other PnP examples on this site,
-Interactiveneeds your organization’s own registered Entra ID application.
What survives, and what stops
| Survives untouched | Stops working |
|---|---|
| Every list item and its values | Tabs, rules and conditional logic |
| All list columns, including ones you added for DFFS | Computed values, repeating sections, Related Items |
| Attachments and version history | Field enhancements — signature, star rating, barcode and the rest |
| Views, permissions and content types | Print to PDF and the DFFS command-bar button |
Columns DFFS wrote to —
DFFSSaveType,_DFFSIDand any fields your rules populated — keep their existing values. They just stop being updated. See System fields if you want to remove them as well.
Just letting a license lapse?
Letting a license expire is not a way to uninstall — it leaves the forms in place and eventually stops them working, which is the worst of both. If you want DFFS gone, deactivate it properly using the steps above.
What actually happens when a license lapses:
- From 30 days before expiry — a warning banner, shown only to users with Manage lists permission. Forms work normally.
- For 45 days after expiry — everyone sees a banner naming the expiry date and a reference code. Forms still work normally.
- After that grace period — opening a DFFS form shows a License expired message instead of the form. Administrators can still open the form configuration, so a renewed license code can be entered and everything returns to normal.
Nothing is deleted at any point, and a downgrade is gentler than an expiry — it never blocks a form, it just makes features above your tier read-only. See the pricing FAQ for the full picture.