Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
As part of the regular business processes with Microsoft Dataverse, users often delete records or transactions either manually or systematically, either planned or by accident, via system processes, single selection, multiple selections, and bulk deletion. Retrieving deleted data is hard and often records aren't always recoverable. To address this limitation, manage deleted records from this environment is available to recover table record data from most types of delete scenarios within a specified configurable time frame.
Developers should read Restore deleted records with code to learn how to interact with this setting using code.
Prerequisites
To restore deleted Dataverse records, turn on the Keep deleted Dataverse records setting in your environment.
Keep deleted Dataverse records
- Sign in to the Power Platform admin center as an admin (Dynamics 365 admin or Microsoft Power Platform admin).
- Select Manage > Environments and then open the environment you want.
- Select Settings > Product > Features.
- Scroll down to view the Deleted records area, and select the Keep deleted Dataverse records option.
- In the Keep deleted records (days) box, enter the number of days, between 1 and 90, to keep deleted records.
- Select Save.
- Allow 30 minutes for the system to configure the setting.
Note
- When you enable Keep deleted records, deleted records remain in storage and continue to count toward your organization's storage capacity until they're permanently removed.
- You can only restore records deleted after this setting is successfully enabled.
View and restore the deleted records in Power Apps
You can proactively manage the storage used by deleted records. At any time, you can free up this storage by selecting the Delete all records option, which permanently removes all deleted items currently consuming storage.
Power Platform admin center
To restore deleted records from the admin center, sign in to the Power Platform admin center as a user with the system administrator security role and complete the following steps.
- Select Manage.
- Select Environments and open the environment you want to view and restore deleted records.
- Go to Settings > Data management > Deleted Records.
- View all the deleted records from all tables.
- Select one or more records you wish to restore, and then select Restore on the command bar.
- Select OK to confirm the action to restore.
Power Platform Environment Settings app
To restore deleted records from the Power Platform Environment Settings app:
- Sign in to the Power Platform environment as a user with the system administrator security role.
- Select the Power Platform Environment Settings app, or select Settings > Advanced Settings.
- Go to System > Data management > Deleted Records.
- View all the deleted records from all tables.
- Select one or more records to restore, and then select Restore on the command bar.
- Select OK to confirm the restoration.
Troubleshooting and limitations
Deleted records setting only supports delete operations
The deleted records setting only supports delete operations, not updates.
Restore operation only supports records
The restore operation only supports records. It doesn't support recovering organizations or tables.
Some records aren't restored
Some organizations add custom business logic that deletes records related to a record that is deleted. To restore related records deleted by custom business logic, you need to apply the opposite logic on the Restore operation to recover the records when you restore the original record that was deleted.
You can restore records deleted through the table relationship cascade behavior process. For more information about cascade behavior, see Configure table relationship cascading behavior.
Deleted records don't appear after turning on the Keep deleted Dataverse records setting
Before you troubleshoot
Deleted records are only kept after the Keep deleted Dataverse records setting is turned on. Records deleted before you turned on the setting can't be restored.
Turning on the Keep deleted Dataverse records setting triggers a background system job called Enable keeping deleted data for Organization. This job must complete successfully before deleted records are kept for restoration later. Even though the setting is turned on, that doesn't guarantee that the job has finished.
How the job works
- When you turn on the setting, the system job is automatically created and begins running.
- If the job succeeds, it's automatically removed from the System Jobs list. Its absence means success.
- If the job fails, it remains in the list for a few days so you can open it and view the error details.
Check the system job status
- Open the Power Platform admin center.
- Select the environment where the issue is occurring.
- Go to Settings > Audit and logs > System jobs.
- On the All System Jobs page, search for Enable keeping deleted data for Organization.
Interpreting what you see
| What you see | What it means | Action |
|---|---|---|
| Job isn't listed | Job completed and was automatically removed. This is the expected outcome. | Verify by checking whether the recently deleted record appears under Settings > Data management > Deleted records. |
| Job is listed, Status: Succeeded | Job completed successfully, but isn't cleaned up yet. | No action needed. |
| Job is listed, Status: Failed | Job encountered an error. | Open the job to view error details, then contact support. |
| Job is listed, Status: Waiting or In Progress | Job is still running. | Wait a few minutes and refresh. |
When to contact support
Contact a Microsoft support representative if any of the following apply:
- The job shows Failed and you can't resolve the error from the details provided.
- The job is no longer listed (or shows Succeeded) but the deleted records still don't appear under Setting > Data management > Deleted records
- It has been more than 30 minutes since you turned on the setting, but deleted records still don't appear under Settings > Data management > Deleted records.
Records deleted through cascading behaviors aren't present in Deleted Records view
Records deleted through automated, cascading behaviors can't be restored independently. You need to restore these records in the order in which they were deleted. The original record that was deleted must be restored before any related records that were deleted through automated cascading behaviors.
For more information about cascading behavior, see Configure table relationship cascading behavior.
Tables not supported
When the deleted records setting is generally available, it's enabled for most tables.
Some tables don't support restoring deleted records. These tables include:
- Virtual tables
- Tables that store solution components
- Elastic tables
- Tables with more than 600 attributes
Check the attribute count for a specific table by using {organizationUrl}/api/data/v9.0/EntityDefinitions(LogicalName='account')/Attributes?$count=true.
Developers can detect which tables are enabled for deleted record keeping in their environment.
Tables that the deleted records setting doesn't support
As of October 2026, the query to detect which tables don't have deleted records feature enabled returns these tables in an uncustomized Dataverse environment.
Your environment might return different results. Tables might not be supported if you customize them by adding a large number of columns.
aaduser
advancedsimilarityrule
agentmemory
agenttask
aicopilot_aiplugin
aiplugin
aipluginconversationstartermapping
aipluginexternalschemaproperty
aipluginoperation
aipluginoperationresponsetemplate
aiskillconfig
annualfiscalcalendar
appaction
appactionmigration
appactionrule_webresource_scripts
appconfiginstance
appentitysearchview
applicationroles
applicationuserprofile
appmodule
appmodulemetadata
appmodulemetadataoperationlog
appnotification
appointment
appsetting
attribute
attributeimageconfig
attributemaskingrule
backgroundoperation
bot_botcomponent
bot_environmentvariabledefinition
botcomponent_aipluginoperation
botcomponent_connectionreference
botcomponent_environmentvariabledefinition
botcomponent_workflow
bulkarchiveconfig
bulkdeleteoperation
businessprocess
businessprocesslinkedartifact
businessunitmap
callbackregistration
card
cardstateitem
cascadegrantrevokeaccessversiontracker
catalogassignment
channelaccessprofileentityaccesslevel
channelaccessprofileruleitem
channelpropertygroup
complexcontrol
componentchangesetversion
componentversiondatasource
computeruseagent
connectionreference
connectionroleassociation
connector
convertrule
copilotexamplequestion
copilotsynonyms
customapi
customapiresponseproperty
customcontroldefaultconfig
datalakefolder
datalakeworkspace
dataprocessingconfiguration
dependency
dependencynode
desktopflowmodule
displaystringmap
duplicaterule
dvfilesearch
dvfilesearchentity
dvtablesearchattribute
elasticfileattachment
emailhash
entity
entityclusterconfig
entitydatasource
entityindex
entitymap
entityrelationship
environmentvariablevalue
exchangesyncidmapping
expiredprocess
fabricaiskill
federatedknowledgeconfiguration
fieldpermission
fixedmonthlyfiscalcalendar
flowcredentialapplication
flowlog
flowmachinegroup
flowmachineimageversion
flowrun
gitbranch
gitorganization
gitrepository
globalsearchconfiguration
hierarchyrule
import
importfile
importlog
indexattributes
intelligentmemory
internalcatalogassignment
kbarticletemplate
knowledgesearchmodel
mailboxtrackingfolder
mainfewshot
managedproperty
mcpprompt
mcpresourcecontent
mcptool
mobileofflineprofile
mobileofflineprofileitemassociation
mobileofflineprofilesuggestion
monthlyfiscalcalendar
msdyn_aiconfiguration_documenttemplate
msdyn_aidocumenttemplate
msdyn_aievaluationmetric
msdyn_aimodelcatalog
msdyn_aitestcase
msdyn_aitestcaseinput
msdyn_componentlayer
msdyn_connectordatasource
msdyn_dataflow_datalakefolder
msdyn_dataflowtemplate
msdyn_dataworkspace
msdyn_dmsrequeststatus
msdyn_evalassertion
msdyn_evalprompt
msdyn_evalrun
msdyn_function
msdyn_insightsstorevirtualentity
msdyn_knowledgeharvestplan
msdyn_knowledgesearchfilter
msdyn_modulerundetail
msdyn_nonrelationalds
msdyn_plan
msdyn_planattachment
msdyn_pmbusinessruleautomationconfig
msdyn_pmcalendarversion
msdyn_pmprocessextendedmetadataversion
msdyn_pmprocessusersettings
msdyn_pmrecording
msdyn_pmtab
msdyn_pmview
msdyn_rtestructuredtemplateconfig
msdyn_salesforcestructuredobject
msdyn_schedule
msdyn_solutioncomponentcountdatasource
msdyn_solutioncomponentdatasource
msdyn_solutionhistory
msdyn_timelinepin
msdyn_workflowactionstatus
mspp_columnpermission
mspp_contentsnippet
mspp_entityformmetadata
mspp_entitypermission
mspp_pollplacement
mspp_publishingstate
mspp_redirect
mspp_sitemarker
mspp_webfile
mspp_webformmetadata
mspp_weblink
mspp_webpage
mspp_webrole
mspp_websiteaccess
mspp_webtemplate
newprocess
optionset
organizationui
picklistmapping
pluginassembly
plugintracelog
position
powerpagecomponent
powerpagesite
powerpagesite_dvtablesearch
powerpageslog
powerpagessourcefile
principalentitymap
privilege
privilegesremovalsetting
processstage
publisher
quarterlyfiscalcalendar
queueitemcount
queuemembership
recordfilter
recyclebinconfig
relationshipattribute
reportcategory
reportparameter
retaineddataexcel
revokeinheritedaccessrecordstracker
ribboncontextgroup
ribbondiff
ribbonrule
role
roleprivileges
roletemplateprivileges
routingrule
runtimedependency
savedqueryvisualization
sdkmessage
sdkmessagepair
sdkmessageprocessingstepimage
sdkmessagerequestfield
sdkmessageresponsefield
searchtelemetry
sensitivitylabel
serviceendpoint
serviceplanappmodules
serviceplanmapping
sharedlinksetting
sharedworkspaceaccesstoken2
sharepointsite
similarityrule
skill
skillchangesetreviewer
skillevalresult
skillresource
sla
slakpiinstance
solutioncomponent
solutioncomponentbatchconfiguration
solutioncomponentdefinition
solutionhistorydata
sourcecontrolcomponent
sourcecontrolconfiguration
statusmap
subscription
subscriptionstatisticsoffline
subscriptiontrackingdeletedobject
synapselinkprofile
synapselinkschedule
systemform
systemuserauthorizationchangetracker
systemusermanagermap
systemuserprofiles
tag
taggedprocess
teammobileofflineprofilemembership
teamroles
template
textdatarecordsindexingstatus
traceregarding
transformationmapping
translationprocess
unstructuredfilesearchrecord
userentityuisettings
usermobileofflineprofilemembership
userqueryvisualization
uxagentprojectfile
webresource
workflow
workflowcardconnections
workflowlog
workqueue
activityfileattachment
agenticscenario
agentprompt
aicopilot
aiinsightcard
aipluginconversationstarter
aipluginexternalschema
aiplugininstance
aipluginoperationparameter
aiplugintitle
allowedmcpclient
anyprivilegeentity
appaction_appactionrule_classicrules
appactionrule
appconfig
appelement
application
applicationuser
applicationuserrole
appmodulecomponent
appmodulemetadatadependency
appmoduleroles
appnotificationsignal
approvalprocess
asyncoperation
attributeclusterconfig
attributemap
attributepicklistvalue
bot
bot_botcomponentcollection
botcomponent
botcomponent_botcomponent
botcomponent_dvtablesearch
botcomponent_msdyn_aimodel
botcomponentcollection
bulkdeletefailure
businessdatalocalizedlabel
businessprocessflowinstance
businessunit
calendar
canvasapp
cardentityconnections
cascadegrantrevokeaccessrecordstracker
catalog
channelaccessprofile
channelaccessprofilerule
channelproperty
columnmapping
componentchangesetpayload
componentversion
componentversionnrddatasource
connectioninstance
connectionrole
connectionroleobjecttypecode
controlconfiguration
convertruleitem
copilotglossaryterm
credential
customapirequestparameter
customcontrol
customcontrolresource
datalakefolderpermission
datalakeworkspacepermission
deleteditemreference
dependencyfeature
desktopflowbinary
displaystring
duplicaterecord
duplicaterulecondition
dvfilesearchattribute
dvtablesearch
dvtablesearchentity
emailaddressconfiguration
enablearchivalrequest
entityanalyticsconfig
entitydataprovider
entityimageconfig
entitykey
entityrecordfilter
environmentvariabledefinition
eventexpanderbreadcrumb
expanderevent
exportedexcel
featurecontrolsetting
federatedknowledgeentityconfiguration
fieldsecurityprofile
flowaggregation
flowgroup
flowmachine
flowmachineimage
flowmachinenetwork
fxexpression
gitconfigurationretrievaldatasource
gitproject
gitsolution
goal
hierarchysecurityconfiguration
importentitymapping
importjob
importmap
indexedtrait
interactionforemail
invaliddependency
keyvaultreference
lookupmapping
mailmergetemplate
managedidentity
maskingrule
mcpresource
mcpserver
metadataforarchival
mobileofflineprofileitem
mobileofflineprofileitemfilter
mobileofflineprofilesuggestionimpactedtable
msdyn_aiconfiguration
msdyn_aiconfigurationsearch
msdyn_aievaluationconfiguration
msdyn_aimodel
msdyn_aitemplate
msdyn_aitestcasedocument
msdyn_appinsightsmetadata
msdyn_componentlayerdatasource
msdyn_dataflow
msdyn_dataflowconnectionreference
msdyn_datalakeds
msdyn_dmsrequest
msdyn_entitylinkchatconfiguration
msdyn_evaldataset
msdyn_evalresult
msdyn_formmapping
msdyn_helppage
msdyn_knowledgeassetconfiguration
msdyn_knowledgemanagementsetting
msdyn_mobileapp
msdyn_nativeextension
msdyn_odatav4ds
msdyn_planartifact
msdyn_pmanalysishistory
msdyn_pmcalendar
msdyn_pminferredtask
msdyn_pmprocesstemplate
msdyn_pmprocessversion
msdyn_pmsimulation
msdyn_pmtemplate
msdyn_rtestructuredtemplate
msdyn_rtetemplatemapping
msdyn_salesforcestructuredqnaconfig
msdyn_slakpi
msdyn_solutioncomponentcountsummary
msdyn_solutioncomponentsummary
msdyn_solutionhistorydatasource
msdyn_tour
mspp_adplacement
mspp_columnpermissionprofile
mspp_entityform
mspp_entitylist
mspp_pagetemplate
mspp_powerpagescoreentityds
mspp_publishingstatetransitionrule
mspp_shortcut
mspp_sitesetting
mspp_webform
mspp_webformstep
mspp_weblinkset
mspp_webpageaccesscontrolrule
mspp_website
mspp_websitelanguage
navigationsetting
nlsqregistration
organizationsetting
ownermapping
plugin
pluginpackage
plugintype
powerfxrule
powerpagecomponent_powerpagecomponent
powerpagesite_dvfilesearch
powerpagesitelanguage
powerpagessiteaifeedback
principalattributeaccessmap
principalobjectaccessreadsnapshot
privilegeobjecttypecodes
processsession
processtrigger
publisheraddress
queue
queuemembercount
recentlyused
recurringappointmentmaster
relationship
report
reportentity
reportvisibility
retentionconfig
ribboncommand
ribboncustomization
ribbonmetadatatoprocess
ribbontabtocommandmap
roleeditorlayout
roletemplate
rollupproperties
routingruleitem
savedquery
savingrule
sdkmessagefilter
sdkmessageprocessingstep
sdkmessagerequest
sdkmessageresponse
searchresultscache
semiannualfiscalcalendar
sensitivitylabelattributemapping
serviceplan
serviceplancustomcontrol
settingdefinition
sharedobjectsforread
sharepointmanagedidentity
signal
sitemap
skillchangesethistory
skilldvtablesearch
skillmetadata
skillrolemapping
slaitem
solution
solutioncomponentattributeconfiguration
solutioncomponentconfiguration
solutioncomponentrelationshipconfiguration
sourcecontrolbranchconfiguration
sourcecontrolcomponentpayload
stagedsourcecontrolcomponent
stringmap
subscriptionclients
subscriptionsyncentryoffline
synapsedatabase
synapselinkprofileentity
syncerror
systemuser
systemuserbusinessunitentitymap
systemuserprincipals
systemuserroles
taggedflowsession
tdsmetadata
teamprofiles
teamtemplate
textanalyticsentitymapping
tracelog
trait
transformationparametermapping
unstructuredfilesearchentity
unstructuredfilesearchrecordstatus
userform
userquery
uxagentproject
virtualentitymetadata
webwizard
workflowbinary
workflowdependency
workflowmetadata
workqueueitem