Benefit: The Delete Safety filter prevents accidentally deleting a significant number of items. Massive deletions could result from a configuration change made by mistake to the settings in CRM, the email system, or Riva — but, when the number of items queued for deletion exceeds a configurable threshold, Delete Safety prevents the deletions. After reviewing the deletion requests, it is possible to allow or disallow any of them.
Every time Riva processes deletions — once every four hours — it checks if the number of items queued up for deletion exceeds one or more of the following default threshold values:
Contacts: 250 items or 25% of the currently synced items.
Appointments: 50 items or 10% of the currently synced items.
Tasks: 50 items or 75% of the currently synced items.
Other Modules: 100 items or 25% of the currently synced items.
Common Triggers of Delete Safety:
Mass deleting email or CRM items.
Reassigning contacts or sales territories in the CRM.
Deleting a recurring appointment.
Delete Safety is triggered most commonly on contacts and calendar items.
Because Riva processes deletions every four hours, rather than every sync cycle, deletions over the course of a business day can add up quickly.
You may not have deleted a single item. If contacts were reassigned or are managed automatically by rules in the CRM, they may have been removed from you as owner.
Every occurrence of a deleted recurring meeting counts as one deletion and may show on the account of anyone who was invited to the meeting and syncs with Riva.
If you have few items synced in a particular module, it is easy to exceed the Delete Safety threshold. For example, if in one module you have 50 items synced to the CRM, deleting five items in that module triggers Delete Safety.
When the number of deletion requests exceeds the corresponding threshold, an error appears in the Riva Service Monitor. Here are two examples.
[Appointment] Error - [CA] Poll result returned more deletes than allowed [37%/10%]. Aborting to prevent data loss
[Calendar] Error - [XA] Poll result returned more deletes than allowed [258/100]. Aborting to prevent data loss
Reading the errors:
Delete Safety errors have the following format:
[Module] Error - [Log prefix] Poll result returned more deletes than allowed ...
[Module] indicates the module where the attempted deletions exceed the threshold.
[Log prefix] indicates the system where the attempted deletions originate from. For example, [CA] indicates CRM appointment. For the complete list of log prefixes, see Log prefixes.
Examples of scenarios in which a large number of items might be deleted:
A re-alignment of sales regions,
Changes in account or contact ownership,
Changes in team membership (if team selling is enabled),
Changes in any other sync filter options that control which items are visible to be synchronized by Riva, or
Deletion of a recurring appointment.
Possible Solutions for Riva Cloud
There are several ways to resolve a Delete Safety error.
Option to disable the Delete Safety filter completely
Requirement: Riva 2.4.36 or higher.
The following option can be used to completely disable the filter.
Sync.Crm.DeleteSafety.Disabled = true
Default value: false.
When the option is set to true, the Delete Safety filter is disabled, and all deletions are permitted in both directions.
Options to adjust Delete Safety thresholds
Requirement: Riva 2.4.36 or higher.
By default, the thresholds are set to a low level to prevent as many accidental deletions as possible. However, in some use cases, a large number of deletions are expected and desired.
The default settings and thresholds vary depending on the specific type of item being synchronized (contacts, calendar, tasks, etc.). For more information, see Thresholds.
The following options are available to adjust the thresholds used by Delete Safety:
The maximum allowed deletions per poll. If more than this number of deletions are returned in a poll, the entire cycle is aborted. If [Module] is not specified, the option is applied to all modules in both directions. To determine the desired module, look at the error.
The maximum allowed percentage of items to be deleted. If [Module] is not specified, the option is applied to all modules in both directions. To determine the desired module, look at the error.
The minimum number of items required to enable the Delete Safety checks. If there are fewer than this number of items synced in total, no Delete Safety checks are performed at all. (This provision is designed for trial or testing scenarios where it can be quite common to delete all items.)
The minimum number of deletions allowed per poll which will always be allowed. For example, if there are only x number of deletions, these will be allowed regardless of the number of items being synced.
Option to adjust the number of logged items
Requirement: Riva 2.4.48 or higher.
By default, when Delete Safety prevents items from being deleted, it displays the ID number of up to ten items. Example:
2018-05-04 10:26:04,702 WARN [CTP-cqd #2] [1MTD5YB5Q585] Aborting sync to prevent possible data loss for items:
0031N00001M8CAlQAN; 0031N00001MktRSQAZ; 0031N00001NRlR6QAL; 0031N00001Pcpb1QAB; 0031N00001PcpkOQAR;
0031N00001TT7n1QAD; 0031N00001VbEUhQAN; 0031N00001VbEV1QAN; 0031N00001VbEVhQAN; 0031N00001VbEWBQA3
The following advanced option is available to change the maximum number of ID numbers that are displayed for any module.
If the [module] parameter, for example Appointment, is omitted, the maximum number applies to all modules.
Options to skip detected deletions for specific modules
Requirement: Riva 2.4.36 or higher.
In various scenarios, a large number of item deletions are desired in one system, typically the email system, but should be skipped and prevented from being deleted in the other system, typically the CRM. Apply the following advanced options to permanently skip deletions in a specific direction while allowing Delete Safety filters to be in effect for the remaining data. Set the value to TRUE for the one or more modules that you want to skip item deletions for.
Sync.Crm.CrmDeletes.Disabled.Appointment Sync.Crm.CrmDeletes.Disabled.Contact (Use only if Synchronize contact deletions from Exchange to CRM has been enabled on the policy.) Sync.Crm.CrmDeletes.Disabled.Phone_Call Sync.Crm.CrmDeletes.Disabled.Service_Appointment (For Microsoft Dynamics CRM.) Sync.Crm.CrmDeletes.Disabled.Task
Option to process the deletes during the next sync poll
Requirement: Riva 2.4.37 or higher.
A re-initialization option available for the sync policy allows Riva to process deletions in both directions to allow normal data sync to resume.
To allow deletions to be processed on the next sync poll:
In the Re-Initialize Users window, fill out the fields as follows:
Modules: Select the syncing module to apply the re-init option to. To apply the re-init option to all syncing modules, select All.
Category: (This field is available in Riva 2.4.47 or higher.) Select Sync Restriction.
Type: Select Override Delete Safety.
[Run buttons]: Indicate when the re-initialization is to take place.
Run next sync cycle: This is the default selection.
Run after scheduled time:
The re-init option is run in the first available spot for a sync cycle after the scheduled time. Delays can be introduced by Riva maintenance tasks or other sync cycles that need to be completed first.
Multiple re-init options can be scheduled and queued, but any given user can appear in only one of them.
To schedule the time, you can select the month, day, year, etc. individually and edit it. At the far right of the time field, you can also use the date picker.
Select OK to view the list of changes about to be made. Verify that they are correct.
Enable the policy.
Result: The re-initialization option is applied against every selected user. The timing depends on the selected Run button.
When the system starts to process items for deletion, it records how each item was processed. Here are various sample log entries for calendar items that were caught by a Delete Safety filter and then processed:
2015-07-23 02:39:17,487 INFO [CTP-pqp #7584] [93K9BJDB8P5H] Skipped Appointment in Exchange - Skipping detected CRM change for a deleted or declined appointment that originated in Exchange [CA20]
2015-07-23 02:39:17,733 DEBUG [CTP-pqp #7584] [93K9BJDB8P5H] ExApptSyncSpoke.InitializeCancelInvitation: Invitation option is not set. Skip sending invitation.
2015-07-23 02:39:17,747 INFO [CTP-pqp #7584] [93K9BJDB8P5H] Skipped Appointment in Exchange - Ignoring appointment deletion on appointment older than 30 days [CA21]
2015-07-23 02:39:18,110 INFO [CTP-pqp #7584] [93K9BJDB8P5H] Skipped Appointment in Exchange - Skipping detected CRM change for a deleted or declined appointment that originated in Exchange [CA26]
2015-07-23 02:39:19,223 DEBUG [CTP-pqp #7584] [93K9BJDB8P5H] EwsAppointmentSyncProvider.DeleteEwsItem: Appointment = , InvitationMode = SendToNone
2015-07-23 02:39:19,350 INFO [CTP-pqp #7584] [93K9BJDB8P5H] Deleted Appointment from Exchange: [7/1/2015 8:00:00 AM]
2015-07-23 02:39:19,473 INFO [CTP-pqp #7584] [93K9BJDB8P5H] Skipped Appointment in Exchange - Unable to find Appointment to delete. It may have already been deleted.
If Riva attempts to schedule deletions made in the CRM to the email system and the item has already been deleted in the email system, Riva skips those deletions.
If Riva attempts to delete an item whose start date is more than 30 days old, Riva skips deleting those items.
The other log entries are self-explanatory.
Skip the item deletions caught in the Delete Safety filter
Requirement: Riva 2.4.37 or higher.
To skip item deletions caught in the Delete Safety filter:
Work with affected users to determine if a large number of item deletions were expected.
In the Riva Manager application, on the menu, select Policies.
In the right pane, double-click the affected sync policy to edit it.
In the Edit CRM Synchronization Policy window that appears, select the Re-Initialize or Sync Start Time tab.
Note: In sync policies created in Riva 2.4.46 or higher, the Re-Initialize page replaces the Sync Start Time page.
On the page that you have selected, do as follows:
Select Load Users, select the affected users to disable Delete Safety for, and select
On the Module drop-down list, select All or the specific module.
In Riva 2.4.47 or higher, on the Category drop-down list, select Sync Restriction.
In Riva 2.4.37 or higher, on the Type drop-down list, select Override Delete Safety and skip deletes.
Save the sync policy.
Open the Riva Service Monitor application to review the next sync cycle for the selected user or users.
Result: The Delete Safety filter is bypassed during the next sync poll, and the sync skips items indicated at step 6 while processing the rest of the "captured" deletions to be processed.
Riva for Exchange and HCL Notes only.
Riva 2.4.36: Basic Delete Safety filters are enabled by default.
Riva 22.214.171.12429 or higher: Advanced options to skip items deletes are effective.
Riva 2.4.37 or higher: Re-init OverrideDeleteSafety on next sync poll is effective.
Riva 2.4.48 or higher: The advanced option to adjust the number of logged items is effective.