Restore deleted Microsoft Dataverse table records (preview)

[This article is pre-release documentation and is subject to change.]

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, the recycle bin 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 (preview) to learn how to interact with this feature using code.

Important

  • This is a preview feature.
  • Preview features aren’t meant for production use and may have restricted functionality. These features are available before an official release so that customers can get early access and provide feedback.
  • This feature is currently being deployed and might not yet be available in your region.
  • Any storage used by the recycle bin doesn't count against your organization's storage capacity.
  • The recycle bin feature isn't available for Dataverse for Teams.

Prerequisites

To use this feature, it must be enabled in the environment where you want to restore Dataverse table records.

Enable restore table records

  1. Sign in to the Power Platform admin center as an admin (Dynamics 365 admin or Microsoft Power Platform admin).

  2. Select Environments and open the environment you want.

  3. Select Settings > Product > Features.

  4. Scroll down to view the Recycle Bin settings.

    • Turn On the Recycle Bin setting.
    • Specify the time interval, to be able to restore table records. You can restore table records up to 30 days after the record was deleted.

View and restore the deleted records in Power Apps

Viewing and acting on the deleted records in the Power Apps user experience is only enabled for System Administrators in the preview phase.

  1. Sign in to the Power Platform admin center as a user with the system administrator security role.
  2. Select Environments and open the environment you want to view and restore deleted records.
  3. Go to Settings > Data management > View Deleted Records.
  4. You can view all the deleted records from all tables in a new tab.
  5. Select one or more records you wish to restore, and then select Restore on the command bar.
  6. Select Ok to confirm the action to restore.

Limitations

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.

Records deleted via the table relationship cascade behavior process can be restored. For more information about cascade behavior, go to Configure table relationship cascading behavior.

Deleted records aren't shown after turning on the recycle bin

Deleted records might not appear when the recycle bin feature is turned on. Verify that the Enable RecycleBin for Organization system job is turned on. Go to the Power Platform admin center, select the environment where this issue is happening, and select Settings > Audit and logs > System jobs. On the System Jobs page, search for Enable RecycleBin. Confirm that the Status Reason is Succeeded.

If the Status Reason isn't Succeeded, or despite the success state appearing correct, and you're not seeing the Restore option for deleted records, contact a Microsoft support representative and create a support request.

Records deleted through cascading behaviors aren't present in Deleted Records view

Records that were deleted through automated, cascading behaviors can't be restored independently. These records need to be restored 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, go to Configure table relationship cascading behavior.

Tables not supported

When recycle bin is generally available, it will be enabled for most tables.

Some tables won't support recycle bin. These tables include:

During the preview, some tables with large numbers of columns aren't currently supported. Currently, the maximum number of columns is 400. This value might go higher or lower as we determine the correct threshold.

Developers can run a query that returns which tables are enabled for recycle bin in your environment.

Tables not currently supported for Recycle Bin

These tables are returned from the query to detect which tables don't have recycle bin enabled an uncustomized Dataverse environment as of August 2024.

Your environment might have different results. Tables customized by adding large numbers of columns might not be supported.

aaduser
aicopilot
aiplugin
aipluginconversationstartermapping
aipluginexternalschemaproperty
aipluginoperation
aipluginoperationresponsetemplate
annualfiscalcalendar
appaction_appactionrule_classicrules
appactionrule
appconfig
application
applicationuser
applicationuserrole
appmodulecomponent
appnotification
asyncoperation
attributeimageconfig
backgroundoperation
bot_botcomponent
bot_environmentvariabledefinition
botcomponent_aipluginoperation
botcomponent_connectionreference
botcomponent_environmentvariabledefinition
botcomponent_workflow
bulkdeletefailure
businessunit
callbackregistration
card
cardstateitem
catalogassignment
columnmapping
componentversion
componentversionnrddatasource
connectionreference
connectionroleassociation
copilotexamplequestion
copilotsynonyms
customapi
customapiresponseproperty
customcontroldefaultconfig
datalakefolder
datalakeworkspace
dataprocessingconfiguration
desktopflowbinary
displaystring
duplicaterulecondition
dvfilesearchattribute
dvtablesearch
dvtablesearchentity
entity
entitydataprovider
entityindex
entityrecordfilter
environmentvariabledefinition
eventexpanderbreadcrumb
expiredprocess
fabricaiskill
federatedknowledgeconfiguration
fieldpermission
fixedmonthlyfiscalcalendar
flowlog
flowmachinegroup
flowmachineimageversion
flowrun
goal
importentitymapping
importjob
importmap
interactionforemail
kbarticletemplate
lookupmapping
mainfewshot
managedproperty
metadataforarchival
mobileofflineprofileitem
mobileofflineprofileitemfilter
msdyn_aiconfiguration
msdyn_aitemplate
msdyn_componentlayer
msdyn_connectordatasource
msdyn_dataflow_datalakefolder
msdyn_dataflowtemplate
msdyn_dmsrequest
msdyn_entitylinkchatconfiguration
msdyn_helppage
msdyn_knowledgeassetconfiguration
msdyn_knowledgesearchfilter
msdyn_modulerundetail
msdyn_odatav4ds
msdyn_pmbusinessruleautomationconfig
msdyn_pmcalendarversion
msdyn_pmprocessextendedmetadataversion
msdyn_pmprocessusersettings
msdyn_pmrecording
msdyn_pmview
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
ownermapping
pluginassembly
plugintracelog
position
powerbimashupparameter
powerfxrule
powerpagecomponent_powerpagecomponent
powerpagesite_dvfilesearch
powerpageslog
principalentitymap
privilegesremovalsetting
processstage
publisher
quarterlyfiscalcalendar
queuemembership
recordfilter
recyclebinconfig
relationshipattribute
reportcategory
retaineddataexcel
ribbonmetadatatoprocess
roleeditorlayout
roletemplate
runtimedependency
savedqueryvisualization
sdkmessagefilter
sdkmessageprocessingstepimage
searchtelemetry
serviceendpoint
serviceplanappmodules
serviceplanmapping
sharepointsite
sitemap
slaitem
solution
solutioncomponentattributeconfiguration
solutioncomponentconfiguration
solutionhistorydata
subscriptionsyncentryoffline
synapselinkprofile
synapselinkschedule
systemform
systemuserauthorizationchangetracker
systemuserroles
teamprofiles
teamtemplate
tracelog
transformationparametermapping
userform
userquery
virtualentitymetadata
webwizard
workflowbinary
workflowlog
workqueueitem

activityfileattachment
aicopilot_aiplugin
aipluginconversationstarter
aipluginexternalschema
aiplugininstance
aipluginoperationparameter
aiplugintitle
appaction
appactionmigration
appactionrule_webresource_scripts
appconfiginstance
applicationroles
applicationuserprofile
appmodule
appmoduleroles
appointment
attribute
attributemaskingrule
bot
bot_botcomponentcollection
botcomponent
botcomponent_botcomponent
botcomponent_dvtablesearch
botcomponent_msdyn_aimodel
botcomponentcollection
bulkdeleteoperation
calendar
canvasapp
cardentityconnections
catalog
channelaccessprofileentityaccesslevel
complexcontrol
componentversiondatasource
connectioninstance
connectionrole
connector
copilotglossaryterm
credential
customapirequestparameter
customcontrol
customcontrolresource
datalakefolderpermission
datalakeworkspacepermission
dependency
desktopflowmodule
duplicaterule
dvfilesearch
dvfilesearchentity
dvtablesearchattribute
elasticfileattachment
entityanalyticsconfig
entityimageconfig
entitykey
entityrelationship
environmentvariablevalue
exchangesyncidmapping
exportedexcel
featurecontrolsetting
federatedknowledgeentityconfiguration
fieldsecurityprofile
flowcredentialapplication
flowmachine
flowmachineimage
flowmachinenetwork
fxexpression
import
importfile
importlog
indexattributes
invaliddependency
keyvaultreference
mailmergetemplate
managedidentity
maskingrule
mobileofflineprofile
mobileofflineprofileitemassociation
monthlyfiscalcalendar
msdyn_aimodel
msdyn_appinsightsmetadata
msdyn_componentlayerdatasource
msdyn_dataflow
msdyn_dataflowconnectionreference
msdyn_datalakeds
msdyn_dmsrequeststatus
msdyn_formmapping
msdyn_insightsstorevirtualentity
msdyn_knowledgemanagementsetting
msdyn_mobileapp
msdyn_nonrelationalds
msdyn_pmanalysishistory
msdyn_pmcalendar
msdyn_pminferredtask
msdyn_pmprocesstemplate
msdyn_pmprocessversion
msdyn_pmtemplate
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
picklistmapping
pluginpackage
plugintype
powerbidataset
powerbireport
powerpagecomponent
powerpagesite
powerpagesitelanguage
principalentitybusinessunitmap
privilege
processsession
processtrigger
publisheraddress
queue
recentlyused
recurringappointmentmaster
relationship
report
reportparameter
retentionconfig
role
roleprivileges
roletemplateprivileges
savedquery
sdkmessage
sdkmessageprocessingstep
searchresultscache
semiannualfiscalcalendar
serviceplan
serviceplancustomcontrol
sharedlinksetting
similarityrule
sla
slakpiinstance
solutioncomponent
solutioncomponentbatchconfiguration
solutioncomponentrelationshipconfiguration
subscriptionstatisticsoffline
synapsedatabase
synapselinkprofileentity
syncerror
systemuser
systemuserprofiles
teammobileofflineprofilemembership
teamroles
template
transformationmapping
translationprocess
usermobileofflineprofilemembership
userqueryvisualization
webresource
workflow
workflowcardconnections
workqueue

See also

Restore deleted records with code (preview)