Clone FAQs - Frequently Asked QuestionsIssue <!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } .mce-toc { background-color: #f7f7f7; padding: 10px; border-radius: 5px; border: 1px solid #dedede; width: 70%; min-width: 500px; } This article lists the most frequently asked Cloning questions that ServiceNow Technical Support receive in relation to clones from a source instance to a target instance. Find out more about: backups, post cloning, excluders, preservers, and clean up scripts. This article is part of a 3-part series on Clones, including: Clone BasicsClone Tips and Tricks Table of Contents Three Common Questions Can I clone from a specific date?Can I request a backup before my clone?How can I determine the available backup for my instance? Backup-Related Questions Which backup file is used when I clone? How does cloning from an on-demand backup work?Does adding my production instance to the on-demand backup list affect performance?If the source instance database is fragmented, will the target instance also be fragmented? Post Clone Questions After a clone, why do comments and updates show a different user and time?How can I reset MFA on a clone?Why am I unable to log in after a clone?My clone failed with "The clone pre-flight check for valid capacity mapping has failed" when cloning to a demo or POV instanceWhy is my text search not working after a clone?I excluded a specific table, but the data is still present after the clone Excluders and Preservers How do excluders work?How do preservers work?What happens if I add a table to both the exclude and preserver lists?Can I preserve plugins from the target instance?If I preserve records, do I need to also preserve attachments?Do changes to preservers and excluders take effect immediately?I cleared the exclude options, but excluders still ran after the clone (legacy UI)I cannot add an existing table to the preserversWhy are my attachments missing after a clone? Clean Up Scripts How do clone cleanup scripts work? Can I run cleanup scripts in a specific scope?How can I check which cleanup scripts ran?How do I prevent a failed cleanup script from stopping other cleanup scripts?Can I run different cleanup scripts per instance? Update Sets & Cloning Why are my update sets missing after cloning following an upgrade?Handle large quantities of in-progress update sets before cloning Source Control and Cloning How does cloning affect source control configurations? Are there source control settings that need to be reconfigured after a clone? How should I handle stories that are in progress or completed but not yet deployed to production?Do I need a data preserver for source control configuration?What should I verify before and after a clone to keep source control functional?Documentation related to cloning instances when CI/CD and GitHub source control integration are enabled: RaptorDB & Cloning What happens if I clone between a RaptorDB instance and a MariaDB instance? Hyperscalers & Cloning Can I clone from a hyperscaler-hosted instance to a ServiceNow-hosted instance? Other FAQs What is a draft clone record and why can I not delete it?Why is my clone 'on hold'?Why are some dates and times unavailable when scheduling a clone?Does cloning change the release version of the target instance?Clone target authentication fails with "Invalid username or password"Why are production email accounts copied to my target instance even when I exclude data?How to reschedule my clone? Three Common Questions Can I clone from a specific date? By default, clone requests use the most recent backup for the source instance. On-demand backup: If a major change was made to production after the nightly backup ran and you want that change reflected in the clone, take a fresh on-demand backup. See the following question for options on how to request one. Instance Restore request: To restore your instance to an earlier state using an older backup, submit an Instance Restore request through the Now Support Service Catalog: https://support.servicenow.com/now?id=ns_automation_store Can I request a backup before my clone? Yes. There are two ways to take an on-demand backup. Option 1: Clone Admin Console The Clone Admin Console (Store app released November 2023) includes an on-demand backup option. When placing a clone through the app, select the on-demand backup under optional settings. A new backup begins at your specified clone start time. You do not need to be on the on-demand backup list to use this option. Option 2: Now Support case request Submit a case through Now Support to be added to the on-demand backup list. Once added, a fresh backup is taken with each clone. How can I determine the available backup for my instance? To get a list of available backups, follow these steps in Now Support: Log in to Now Support.Select Service Catalog in the left navigation.Select Instance Management in the catalog menu.Select the List of backups for the instance tile. Backup-Related Questions Which backup file is used when I clone? The clone uses the most recent backup file from the datacenter of the target instance. For example, if a production instance has 2 nodes in the LHR datacenter and 2 nodes in the AMS datacenter, daily backup files are created for both datacenters. A clone to a development instance in the AMS datacenter uses the most recent AMS backup. A clone to a test instance in LHR uses the most recent LHR backup. How does cloning from an on-demand backup work? There are two ways to take an on-demand backup. Option 1: Clone Admin Console The Clone Admin Console (Store app released November 2023) includes an on-demand backup option. When placing a clone through the app, select the on-demand backup under optional settings. A new backup begins at your specified clone start time. You do not need to be on the on-demand backup list to use this option. Option 2: Now Support case request Submit a case through Now Support to be added to the on-demand backup list. Once added, a fresh backup is taken with each clone. To remove an instance from the on-demand backup list, submit a case through Now Support. Does adding my production instance to the on-demand backup list affect performance? No. Generating an on-demand backup does not affect production performance. If the source instance database is fragmented, will the target instance also be fragmented? No. The clone builds a new database from the selected backup, so the cloned instance has little or no fragmentation. Post Clone Questions After a clone, why do comments and updates show a different user and time? This is expected behavior. When you clone with excluders, the [sys_audit] table is excluded. This table stores the user, date, and time for each comment and update. Without it, the system uses the sys_created_by and sys_created_at fields for all comments on the record. When you view the history of a record, all updates show as update 0. For more information, see the Cloning — Activity formatter and audit not showing correct user and time article in the Now Support Knowledge Base. How can I reset MFA on a clone? This video shows how to reset the MFA on a cloned instance. Why am I unable to log in after a clone? Cloning copies settings from the production instance, including SSO and login configurations, which can prevent access to the non-production instance after the clone. Having a local admin account is useful for this reason. Method 1: Create a local admin user on the source instance Create a local admin user with a local password on the source instance.Clone over the non-production instance.Log in to the instance using side_door.do with the credentials from step 1. Method 2: Create a local admin user on the target instance with a preserver Create a local admin user with a local password on the target instance.Create clone preservers for the following tables: User [sys_user], User Roles [sys_user_has_role], and User Groups [sys_user_grmember].Clone over the non-production instance.Log in to the instance using side_door.do with the credentials from step 1. Note: Verify that at least one admin account has the security_admin role. If no admin account holds this role, regaining it requires ServiceNow support assistance. My clone failed with "The clone pre-flight check for valid capacity mapping has failed" when cloning to a demo or POV instance This error occurs when the target instance is too small and cannot grow to accommodate the source instance. Demo and POV instances are built to grow only to a specific size. If the source instance has grown beyond that size, you cannot clone to a demo or POV instance — you must clone to a non-production instance, which can grow as needed. ServiceNow cannot increase the size of a demo or POV instance. Why is my text search not working after a clone? A clone cleanup script runs after every clone to reindex the instance for search. Text search does not work while this reindexing is in progress. To monitor progress, go to the running jobs list and look for the text index events process. You can also check stats.do, where you will see an entry similar to: Text search functionality resumes when reindexing is complete. I excluded a specific table, but the data is still present after the clone This issue has several possible causes: The Exclude tables checkbox was cleared before the clone ran.The selected table is on the deny list for exclusions and cannot be excluded.When excluding child tables of the Task table, you only need to exclude the child table — not the parent Task table. This applies to both TPH and TPC extension models. Excluders and Preservers How do excluders work? All exclude settings must be configured on the source instance.Excluders are created per table. Condition-based excluders are not supported.Excluders apply only to source data.Excluding a table truncates it — no data from the source instance is kept.When excluding child tables of the Task table (table per hierarchy extension model), exclude only the child table. You do not need to exclude the parent Task table.Exclude options are selected by default.Clearing all exclude options before cloning results in no data being excluded.You can exclude and preserve the same table. How do preservers work? All preserver settings must be configured on the source instance.You can preserve data only — not tables or columns.Preservers are created per table and support condition-based filtering to preserve specific records.Preservers apply only to target data.Data is imported after exclusions run.Preservers run on every clone.You can exclude and preserve the same table.A table can only be preserved from the target instance if it also exists in the source instance. Table structure cannot be preserved — only data.Preservers are intended for key data, not large volumes of data. Preserving large amounts of data can cause the clone to fail or take significantly longer to complete. For more information, see the Clone results based on Exclusion and Preserver configuration article in the Now Support Knowledge Base. What happens if I add a table to both the exclude and preserver lists? The table on the target instance remains unchanged after the clone. For example, if the table had 5 records before the clone, it still has those same 5 records afterward. The following table summarizes the expected outcomes for each combination of preservers and excluders: ScenarioPreserverExcluderOutcome 1 YesYesTarget table records remain unchanged after the clone 2 YesNoTarget records are kept and source records are also copied over 3 NoYesSource records are not copied; target records are removed. The table is empty but usable after the clone 4 NoNoSource records replace target records Can I preserve plugins from the target instance? No. Clones restore the source instance over a new database, so plugins on the target instance are not preserved. After the clone, activate the plugins again or submit a request through Now Support if needed. If I preserve records, do I need to also preserve attachments? No. When you preserve a record that has attachments, the attachments are automatically preserved. You do not need to create a separate preserver for the attachment table. Do changes to preservers and excluders take effect immediately? Yes. Changes to excluders and preservers take effect in the next clone request — no waiting period is required. I cleared the exclude options, but excluders still ran after the clone (legacy UI) This issue is caused by a UI change to the clone request form. If you customized the form, the exclude fields may appear in two places — the main form and a hidden options tab. When a field appears twice, the system uses the value from the last instance of the field found on the form, which may not be the value you set. To fix this, update the form so each exclude field appears only once across all sections. I cannot add an existing table to the preservers If you cannot find a table in the preservers list, the table is likely in a specific application scope. To add it: Switch to the scope of the table. Select the gear icon in the upper right, go to Developer, and select the scope of the table.Go to the Data Preserver table.Create the data preserver — the scoped table is now available to select. Why are my attachments missing after a clone? Missing attachments after a clone are expected behavior. The Exclude large attachment data option is selected by default during cloning. To retain attachments, clear the Exclude large attachment data checkbox when scheduling the clone. For more information, see the related attachments and cloning article in the Now Support Knowledge Base. Clean Up Scripts How do clone cleanup scripts work? After the clone completes, all cleanup scripts are combined into a single scheduled job named Execute Clone Cleanup Script: Execute Cleanup Scripts Sequentially and run in the global scope until complete. Scripts run in the order defined by the Order field. Scripts with the same order value run simultaneously.Cleanup scripts must be defined on the source instance.If using functions in cleanup scripts, use unique function names to avoid conflicts. All scripts are merged into a single script before running. Important: All custom cleanup scripts must include error handling. If a script fails without a try/catch block, it can prevent subsequent cleanup scripts from running. Can I run cleanup scripts in a specific scope? All cleanup scripts run in the global scope regardless of the scope in which they are configured. To run scoped logic, use the following approach: Create a script include in the desired scope containing your cleanup logic.Create a Restricted Caller Access (RCA) configuration to allow global scope access to your scoped script. Set the following values: Source Scope: GlobalSource Type: ScopeStatus: AllowedTarget Scope: (scope of the script include)Target Type: Script IncludeTarget: (your script)Operation: Execute API Call the script include from the clone cleanup script. To test, run the cleanup script from the global scope in Scripts - Background and confirm it works as expected. How can I check which cleanup scripts ran? To view a list of cleanup scripts that ran, use the following URL on your instance. If the clone was not performed today, adjust the created date filter. <INSTANCE_URL>/syslog_list.do?sysparm_query=sys_created_onONToday%40javascript%3Ags.beginningOfToday()%40javascript%3Ags.endOfToday()%5EmessageSTARTSWITHExecuting%3A%5Esource%3DNew%20Clone%20Engine How do I prevent a failed cleanup script from stopping other cleanup scripts? Because all cleanup scripts are merged into a single script, an unhandled error in one script can prevent the remaining scripts from running. Wrap your custom cleanup scripts in a try/catch block to handle errors gracefully and allow subsequent scripts to continue. Without error handling: cleanupTempTable(); function cleanupTempTable() { gs.log("here"); gs.log(fds); // Fails here } gs.log("Next script"); // This script will not run due to error already on line 5 With try/catch error handling: try { cleanupTempTable(); } catch (e) { gs.log("Clone Cleanup script failed " + e); } function cleanupTempTable() { gs.log("here"); gs.log(fds); /// Fails here as variable fds doesn't exist. } gs.log("Next script"); // It will still run this script due to the try/catch Can I run different cleanup scripts per instance? You cannot assign cleanup scripts to specific instances directly. However, you can check the instance name within the script and run different logic based on the result. Example: var instanceName = gs.getProperty('instance_name'); if (instanceName == 'testdev') { // Do specific jobs for dev instance } else if (instanceName == 'testsandbox') { // Do specific jobs for sandbox instance } Update Sets & Cloning Why are my update sets missing after cloning following an upgrade? After an upgrade, a fresh backup is taken immediately. If you push update sets right after the upgrade and then clone immediately, those update sets may not be captured in the post-upgrade backup — only the items in the backup are cloned. After an upgrade and deploying updates to apps, wait at least 24 hours before cloning so the daily backup has time to capture all applied updates. Handle large quantities of in-progress update sets before cloning On the target instance, filter the update sets list to show all work in progress (WIP) update sets.In a separate browser tab, create a new update set to use as a batch parent.Set the Parent field on all WIP update sets to the new batch update set. To mass-update the list, hold Shift and select the entire column, then double-click any field in the column, enter the value, and select to update all.Set the parent update set state to Completed and name it CLNREQ_DATE (or a name that makes it easy to identify).Export the parent update set.On the source instance, retrieve the update set. Do not commit it.Wait 24 hours for the daily backup to capture the update set, or select the on-demand backup option in the Clone Admin Console.Perform the clone from the source instance to the target instance. The parent update set and its child update sets are included in the backup and cloned over.On the target instance, set the parent update set back to In Progress and remove the parent assignment.On the source instance, delete the retrieved parent update set. Source Control and Cloning How does cloning affect source control configurations? Source control configurations are preserved during a clone. After the clone completes, the instance automatically resyncs to the latest state based on those configurations. Before cloning, verify that all work has been committed to source control. See Preserve applications and customizations in development during a system clone. Are there source control settings that need to be reconfigured after a clone? No. Source control configurations are preserved automatically. How should I handle stories that are in progress or completed but not yet deployed to production? Commit all in-progress changes to source control before cloning. After the clone, apply remote changes or allow the automatic resync to pull the latest committed work. You can then continue development from where you left off. Do I need a data preserver for source control configuration? No. Source control configuration is preserved by default — no data preserver is needed. What should I verify before and after a clone to keep source control functional? Before cloning: Verify all work has been committed. Uncommitted changes will be lost.After cloning: Verify the latest work has been resynced from source control. Documentation related to cloning instances when CI/CD and GitHub source control integration are enabled: For documentation on cloning when CI/CD and GitHub source control integration are enabled, see the source control and clone preservation documentation. RaptorDB & Cloning What happens if I clone between a RaptorDB instance and a MariaDB instance? The clone converts the target database type to match the source database type. Source Instance Target instance (before clone) Target instance (after clone) RaptorDB RaptorDB RaptorDB RaptorDB MariaDB RaptorDB MariaDB RaptorDB MariaDB Note: The following Maria-to-RaptorDB clone scenarios are not supported for sharded database configurations: MariaDB Shard to RaptorDB ShardMariaDB Shard to RaptorDB Non-Shard Hyperscalers & Cloning Can I clone from a hyperscaler-hosted instance to a ServiceNow-hosted instance? No. Cloning from hyperscaler-hosted instances to ServiceNow-hosted instances is not supported. For example, you cannot clone from a production instance hosted on a hyperscaler to a non-production instance in the ServiceNow Cloud. If you are migrating instances to hyperscalers, verify that all production and non-production instances have been fully migrated before submitting clone requests. Other FAQs What is a draft clone record and why can I not delete it? When you select the option to submit a clone in the UI, a record is created in the clone table. If you exit the process before completing the submission, the record remains in your system as a draft. Draft records can be safely ignored. Draft records cannot be deleted because they are linked to an internal ServiceNow system that manages clone requests. Why is my clone 'on hold'? When a clone state is set to Hold, the server rejected the clone request. Common reasons include: The clone was not ready to proceed by the scheduled time.The target instance is not downgraded.There is a problem with the backup used for the clone. For more information, see the Several clones in the state of Hold article in the Now Support Knowledge Base. Why are some dates and times unavailable when scheduling a clone? The scheduling calendar uses conflict detection to prevent clones from overlapping with other scheduled activities. Dates and times may be unavailable for two reasons: Conflicts with other automations or ServiceNow-managed maintenance If changes are already scheduled that affect your target instance — or in some cases your source instance — those time slots are blocked. For example, if an upgrade is planned on the target instance, overlapping time slots are not available. Conflicts with other clone requests Beginning with Clone Admin Console version 2.1.6, multiple clones to the same target instance are allowed, provided they are scheduled at least five days apart. If two clone requests for the same target fall within that window, the system returns an error to prevent overlap. If a time you need is unavailable, check for scheduled maintenance, upgrades, or existing clone requests affecting your instances. Does cloning change the release version of the target instance? Yes. A clone replicates the source instance from the most recent daily backup. After the clone, the target instance matches the table structure and family release version of the source instance. For example, cloning a San Diego instance over a Tokyo instance results in the target running San Diego after the clone. Cloning a Tokyo instance over a San Diego instance results in the target running Tokyo. Clone target authentication fails with "Invalid username or password" This error occurs for one of two reasons: Multi-factor authentication (MFA) is enabled on the target instance To verify, go to the [sys_properties] table and search for the property glide.authenticate.multifactor. If the value is true, MFA is enabled. The BasicAuth script include on the target instance is customized In both cases, you may see entries similar to the following in the instance logs: InstanceRetrieverAjax: Sending request to /HAGetParams.do?SOAP WARNING *** WARNING *** OUTBOUND USAGE ANALYTICS - OutboundUsageAnalytics : OutboundUsageAnalytics: Usage analytics send failed Operation against file 'instance' was aborted by Business Rule 'Target Instance Validate^c16a7406db00c890cd7efafc0f9619dd'. Business Rule Stack:Target Instance Validate Slow business rule 'Target Instance Validate' on instance: time was: 0:00:00.506 Error in user input caused action to be cancelled Use a local admin user to authenticate when creating a clone target or scheduling a clone. Verify that the local admin user does not have Web Service Access Only selected. If this option is selected, the Business Rule Target Instance Validate fails to validate the target instance through a SOAP call from the InstanceRetrieverAjax script include, resulting in the "Invalid username or password" error. For more information, see the Clone authentication to target instance fails with Invalid username or password article in the Now Support Knowledge Base. Why are production email accounts copied to my target instance even when I exclude data? This occurs when the [sys_email_account] table was cloned without exclusion at least once in the past, and a preserver for that table was created afterward. The preserver retains the email accounts on every subsequent clone, even if you have the exclude option selected. Workaround: Clone cleanup script Create a cleanup script on the production instance that deletes the unwanted email account records after every clone, using their sys_id values. Example: // Add sys_ids to the encoded query (queryString) // Example: queryString = "sys_idIN206594e8db9eb3002e14c6fc34961998,6ab25213db003300eaf8e64305961927" var queryString = "sys_idIN"; var emailclean = new GlideRecord('sys_email_account'); emailclean.addEncodedQuery(queryString); emailclean.deleteMultiple(); Add new email account sys_ids to this script as needed. This prevents unwanted email accounts from persisting across clones regardless of whether they were copied from the source instance. How to reschedule my clone? Once the clone request is submitted, it cannot be rescheduled. It is an automated process. If the change is re-scheduled / updated, the clone will still start at the original scheduled time. You can cancel the clone and create a new clone request with the updated time. Cancel Clone Request a clone Release<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } All supported releases Resolution<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } Not Applicable