Skip to page contentSkip to chat
ServiceNow support
    • Community
      Ask questions, give advice, and connect with fellow ServiceNow professionals.
      Developer
      Build, test, and deploy applications
      Documentation
      Find detailed information about ServiceNow products, apps, features, and releases.
      Impact
      Accelerate ROI and amplify your expertise.
      Learning
      Build skills with instructor-led and online training.
      Partner
      Grow your business with promotions, news, and marketing tools
      ServiceNow
      Learn about ServiceNow products & solutions.
      Store
      Download certified apps and integrations that complement ServiceNow.
      Support
      Manage your instances, access self-help, and get technical support.
Clone FAQs - Frequently Asked Questions - Support and Troubleshooting
  • >
  • Knowledge Base
  • >
  • Support and Troubleshooting (Knowledge Base)
  • >
  • Clone FAQs - Frequently Asked Questions
KB0715621

Clone FAQs - Frequently Asked Questions


123107 Views Last updated : Jul 8, 2025 public Copy Permalink English (Original)
  • English (Original)
  • Japanese
KB Summary by Now Assist

Issue

 

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 Basics
    • Clone Tips and Tricks

 

Table of Contents

  • Three Common Questions
    • Can I clone from a specific date?
    • Can I request a backup to be taken before my clone?
    • How can I determine the available backup for my instance? 
  • Backup-Related Questions
    • When I clone which backup file will be used? 
    • I've heard about cloning from an on-demand backup, how does it work?
    • If I add my production instance to the 'On demand backup' list, does it affect the performance of production when it is taking a backup?
    • If the source instance's database is fragmented will the target instance be fragmented as well?
  • Post Clone Questions
    • After a clone, why do comments/updates all show as 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 message "The clone pre-flight check for valid capacity mapping has failed" when cloning to a demo or pov instance as target?
    • Why is my text search not running after my clone?
    • I excluded a specific table, but after the clone, the data is still there?
  • Excluders and Preservers
    • How do Excluders work? 
    • How do Preservers work? 
    • If I add a table to both the exclude and preserver list, what will happen?
    • Can I preserve plugins from the target instance?
    • If Preserving records do I need to preserve the attachments also?
    • If I change preservers and excluders will it work straight away in my next clone?
    • I unchecked the exclude options but after a clone, the excluders still ran.
    • I can't add an existing table to the preservers?
    • Why are my attachments missing after a clone?
  • Clean Up Scripts
    • How do clone cleanup scripts work? 
    • Can I have cleanup scripts run in specific scope? 
    • How to check which cleanup scripts have executed?
    • Can I make sure that if specific clone cleanup script fails?
    • Can I have cleanup scripts per instance? 
  • Update Sets & Cloning
    • Why am I missing my update sets after I cloned after my upgrade and deployment of update sets?
    • Tip for dealing with large quantities of in progress updates sets
  • RaptorDB & Cloning
    • What happens if I clone from a RaptorDB instance to a MariaDB instance (or vice-versa)?
  • Other FAQs
    • What is a draft? Why can I not delete these?
    • Why is my clone 'on hold'?
    • If I clone to another instance, will the release change?
    • What is the difference between Standby Database and Source Instance? 
    • What is the 'Clone From:' field? Does this determine whether the clone uses the live database or a backup? 
    • When requesting a clone or creating a clone target in the authentication step it prompts with "Invalid username or password"?
    • Why have my email accounts been cloned to my target even when excluding data?

Three Common Questions

Can I clone from a specific date?

By default, clone requests use the latest backup for the source instance.  

Fresh / On-Demand Backup: Taking a fresh "On-Demand Backup" for your clone can be helpful if there has been a major change in prod that was not captured in the nightly backup yet, and you want to reflect this change in the clone. Please go to the next question below for options on how you can request an on-demand backup. 

Backup Restore Request: To restore your instance to an earlier state (using an older backup), you can request an 'Instance Restore' on the Now Support Service Catalog: https://support.servicenow.com/now?id=ns_automation_store 

Can I request a backup to be taken before my clone?

Yes. There are two ways to take an on-demand backup.

Option 1: On-Demand Backup option within the Clone Admin Console

The new Clone Admin Console (Store App released November 2023) has an on-demand backup option. When placing a clone via the new app, you will be able to select the on-demand backup under optional settings. When this option is selected via the app, a new backup will begin at your specified clone start time. 
Please note that you do not need to also be on the on-demand backup list to take advantage of this feature. 

Option 2: You can request to be added to an "on-demand backup list" by raising a case through Now Support. Once your instance is on this list, a fresh backup will be taken with each clone.  

How can I determine the available backup for my instance? 

Get a "List of Available Backups of an Instance" from Now Support. 

  • Log in to Now Support (HI)
  • Click "Service Catalog" on the left nav
  • Select "Instance Management" in the Catalog Menu
  • Click the "List of backups for the instance" tile 

Backup-Related Questions

When I clone which backup file will be used? 

  • The clone will always use the most recent backup file, related to the datacenter of the clone target instance. 
  • For example, if a Production instance has 2 nodes in the LHR datacenter and 2 nodes in the AMS datacenter then daily backup files for these 2 datacenter will be created. If you then have a Dev instance in the AMS datacenter and a Test instance in LHR, a clone over Dev will use the most recent AMS backup and a clone over Test uses the most recent LHR backup. 

I've heard about cloning from an on-demand backup, how does it work?

There are two ways to take an on-demand backup:

Option 1: On-Demand Backup option within the Clone Admin Console:

The new Clone Admin Console (Store App released November 2023) has an on-demand backup option. When placing a clone via the new app, you will be able to select the on-demand backup under optional settings. When this option is selected via the app, a new backup will begin at your specified clone start time.
Please note that you do not need to also be on the on-demand backup list to take advantage of this feature. 

Option 2: You can request to be added to an "on-demand backup list" by raising a case through Now Support. Once your instance is on this list, a fresh backup will be taken with each clone.
To remove an instance from the on-demand backup list, you will need to again create a Case for technical support. //under on demand backup – previous question.

If I add my production instance to the 'On demand backup' list, does it affect the performance of production when it is taking a backup?

No, you will not experience any drop off in Performance whilst the on-demand backup is being generated. 

If the source instance's database is fragmented will the target instance be fragmented as well?

No, the clone builds a new database from the selected backup and therefore there should be little or no fragmentation in the cloned instance.

 

Post Clone Questions

After a clone, why do comments/updates all show as a different user and time?

This is as designed, if you clone with excluders you are excluding the sys_audit table, the sys_audit table is used to keep the user, date and time for each comment and update so without the sys_audit it will use the sys_created_by and sys_created_at fields for all comments on the record.

If you view the history of the record all the updates will show as update 0

More information can be found in KB0690828: Cloning - Activity formatter and Audit not showing correct user and time.

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?

This happens more often than you would think.

When cloning over an instance it brings the settings from production this can include SSO and login functionality that can cause you not to be able to login into the sub-production instance after the upgrade.

This illustrates the benefits of always having a local account you can always log into, not only just for cloning.

To avoid this issue from happening for cloning you can do the following.

Method 1: Create a local admin user on the source instance.

    1. Create a local admin user with a local password in your source instance
    2. Clone over sub prod instance
    3. Log in to instance using side_door.do with the username and password from step 1

Method 2: Create local admin user on target instance and include preserver.

    1. Create a local admin user with a local password in your target instance
    2. Create clone preserver for user (sys_user), user roles [sys_user_has_roles], and user groups [sys_user_grmember]
    3. Clone over sub prod instance
    4. Log in to instance using side_door.do with the username and password from step 1

My clone failed with the message "The clone pre-flight check for valid capacity mapping has failed" when cloning to a demo or pov instance as target?

This error message happens when you are trying to clone over an instance that is too small and is not set up to grow in size.

Demo and POV instances are built to only grow to a specific size, so they can be cloned too if the source instance is also small, but once it grows to a specific size you cannot use Demo or POV instances for cloning. You must then clone over a sub-prod instance (which has the capability to grow in size) 

Also, note we cannot increase the size of a demo or POV instance, we will always request to clone over a sub-prod instance.

Why is my text search not running after my clone?

When cloning over an instance you may experience the issue that your text searches are not working.

This is because one of the clone cleanup scripts that run after a clone completes is to reindex this instance for search, while this is running your search will not work.

If you look at jobs running you will see the text index events process, if you look on your stats.do you will see something like this:

clone_scheduler_worker

You can monitor this to completion, once done your search functionality will start to work. 

I excluded a specific table, but after the clone, the data is still there?

This is a very common question that comes up to support. You enter in an excluder but after the clone, the data is still there.

This can be a number of different causes:

    1. You unchecked the checkbox to exclude tables for the clone
    2. You have selected a table that is blacklisted from being excluded. 

When excluding child tables of the Task table, child tables are excluded. You do not need to exclude the parent Task table together with the child table, this works for TPH or TPC extension models

Excluders and Preservers

How do Excluders work? 

  • All Exclude settings must be set up on your SOURCE instance
  • Created  per table, you cannot use condition-based Excluders
  • They are only actioned for the SOURCE data
  • When excluding a table it truncates the table so no data will be kept from the source instance
  • When excluding child tables of the Task table, which uses the table per hierarchy extension model, child tables are excluded. You do not need to exclude the parent Task table together with the child table.
  • By default, the exclude options are selected for cloning
  • If you remove the options for excluding before cloning you will not exclude any data
  • You can Exclude and Preserve the same Table

How do Preservers work? 

  • All Preservers settings must be set up on your SOURCE instance
  • You can only preserve data, not tables or columns
  • Created per table, you can use conditions to only preserve specific data
  • They are only actioned for the TARGET data
  • Data will be imported after the Exclusions are actioned.
  • These will always run on every clone.
  • You can Exclude and Preserve the same Table
  • You can only preserve a table from the target instance if it also exists in the source instance (because the table structure cannot be preserved, only data)
  • Also, preservers are for preserving key data and not a mass amount of data, if you do preserve mass amounts of data the clone can break or take a very long time to run. Would advise not to preserve mass amounts of data.

More information can be found in KB0717012 - Clone results based on Exclusion and Preserver configuration

If I add a table to both the exclude and preserver list, what will happen?

The outcome will be that the table will be exactly the same after the clone as it was before the clone, on the target instance. If the table had 5 records before the clone, then the same 5 records would be there afterward.

Can I preserve plugins from the target instance?

In some cases when testing plugins in your target instance you wish to preserve these plugins so you can continue to test out these plugins and work on them. 

Unfortunately, the way we do clones we do a restore of the source instance over a new database, after the clone you will need to activate the plugins again or request them via HI if required.

If Preserving records do I need to preserve the attachments also?

When cloning, you may want to preserve certain records on your target instance, for example, some incidents. You also want to make sure after the clone that the attachments linked to these incidents are also preserved.

Currently, in our automation, if you preserve a record that has attachments we automatically preserve those attachments without having to create another preserver specifically for the attachment table. 

If I change preservers and excluders will it work straight away in my next clone?

A common question, you have just adjusted your excluders or preservers and want to know if you have to wait for some time before cloning. The answer is NO, once you change the excluders and preservers, those changes will be enforced in the next requested clone.

I unchecked the exclude options but after a clone, the excluders still ran.

Recently we have seen an increase in this issue. After requesting a clone and unticking the exclusion options after the clones it seems like excluders still run why??

This has been linked to a UI change in the request form and some customers had customized the form therefore not getting the changes.

A change was made to the UI to hide the options for excluding in an option tab that you need to click to open and view. Since this happened some customers have customized the form or may have already customized the form to show those values instead of seeing the options in the hidden section, therefore having the field twice on the form.

system_clone_form

The problem here is that the values will always come from the last value it finds so if you unchecked the options on the main form it will take the values from the options as that is the last value for that field it finds.

To fix this you will need to update the form so the fields only appear once on the form over all sections. Once this is fixed it will not happen again.

I can't add an existing table to the preservers?

Sometimes you are trying to add a data preserver for a specific table and you cannot find it in the list and wondering why?? This is most probably due to the scope of the table.

If you want to preserve a table that is part of a specific scope you need to do the following:

    1. Switch to the scope of the table by clicking the cogwheel (gear icon) on the top right > navigate to 'Developer' > pick the scope of the table
    2. Then go to the Data preserver table.
    3. Now creating the data Preserver you will be able to select that specific table and save it.

 

Why are my attachments missing after a clone?

    1. You may have realized that lately, after your clones have been completed, you are missing attachments in the target instance and has been causing issues. 
    2. This is actually working as designed but this exclusion started to work correctly after December 2018 after an internal problem was fixed with the clone automation. This is outside the ServiceNow releases so this will affect all releases and all clones from then. The fix was for the clone option: Exclude large attachment data. 
    3. As documented in the previous question: What do all the options do for cloning?
    4. It states it will remove sys_attachment records that don't meet that criteria, it is not based on the size as the name suggests.
    5. So this is working now as designed and documented through our documentation if you wish to keep your attachments you will need to uncheck the Exclude large attachment data checkbox upon cloning.   

Clean Up Scripts

How do clone cleanup scripts work? 

  • After the clone completes all cleanup scripts are combined together as a scheduled job named "Execute Clone Cleanup Script : Execute Cleanup Scripts Sequentially" and run till completion in global scope.
  • The clean up scripts are ordered based on the order field. (Tip: If they can be executed simultaneously / if order does not matter you can assign the same order for simultaneous execution.)
  • Must be defined on the SOURCE instance.
  • If using functions, ensure they have unique names to avoid conflicts with other scripts, as all scripts are merged into a single script.
  • Note: Ensure that all custom cleanup scripts intended for cloning are error-free and capable of handling errors and exceptions. Otherwise, issues may arise (e.g. if one faulty script fails and doesn't have error-handling built-in, it may prevent the following scripts from executing.)

Can I have cleanup scripts run in specific scope? 

All cleanup scripts run in the global scope irrespective of the scope in which you have configured the cleanup script. So, if you do want to run a scoped script, the best way to do that is to:

1. Create a script include in the desired scope with the cleanup logic in it
2. Have a Restricted Caller Access configuration in place to allow access to your scoped script with the following settings (you need to be in the scope of the script include to create the RCA):
Source Scope: Global
Source Type: Scope
Status: Allowed
Target Scope: <Scope of the Script include>
Target Type: Script Include
Target: <script>
Operation: Execute API

3. Call the script include from the clone clean up script.

To test the cleanup script, run it from global scope in scripts background to confirm that it is working as expected.

How to check which cleanup scripts have executed?

Use the following URL to get the list of cleanup scripts triggered. May need to change the created date filter if the clone was not done today:

<INSTANCE_URL>/syslog_list.do?sysparm_query=sys_created_onONToday%40javascript%3Ags.beginningOfToday()%40javascript%3Ags.endOfToday()%5EmessageSTARTSWITHExecuting%3A%5Esource%3DNew%20Clone%20Engine

 

Can I make sure that if specific clone cleanup script fails?

So with clone cleanup scripts we combine all of the scripts into one, so if one of the scripts errors it can impact all of your other clone cleanup scripts as it will error and not continue.

If you are creating some custom cleanup scripts and you want to make sure that if it fails it will continue to run the rest of the clone cleanup scripts. Adding a simple try/catch in the clone cleanup script even if it fails it will still continue with the next scripts. You can also make you own error message in the catch so you can monitor and easily find the failure of the script.

For example:

Bad script with error

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

TRY/CATCH METHOD

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 have cleanup scripts per instance? 

  • You cannot have cleanup scripts specifically for certain instances
  • But you can define in the cleanup script to check the instance name system property and then depending on the result do specific jobs
  • 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 am I missing my update sets after I cloned after my upgrade and deployment of update sets?

After an upgrade is completed a fresh new backup is taken. Your situation may be similar to this one: The system takes a new backup right after the upgrade and you also push update sets immediately after the upgrade. You choose to immediately clone, however, the update sets you just applied were missed in the post-upgrade backup. if you clone, you will only get the items in the backup

It is recommended that after an upgrade and pushing updates to apps you should wait at least 24 hours so the daily backup has time to run and capture all the updates you applied.

Tip for dealing with large quantities of in progress updates sets

  1. On your target instance, which has the work in progress (WIP) update sets, filter to obtain a list view with all your WIP update sets
  2. In a separate window/tab, create a new update set
  3. Batch all incomplete update sets from step 1 - i.e. set the parent field on your list of WIP update sets to the new batch update set
    1. How to mass-update: you can mass-update the list by holding down the shift key + holding a left click of your mouse while you are selecting the whole column with your mouse – then double click on any one of the fields in the selected column – type the desired value and update all of them to that value.)
  4. Set the parent update set to "Completed" and name it "CLNREQ_DATE" (naming suggestion to make it easier to identify)
  5. Export the parent update set
  6. Back on your source instance, retrieve the update set (Important: Do not commit!)

The parent update set is now added to retrieved update sets on your source instance.

  1. Ensure you wait 24h until your updates set is captured by the daily backup (alternatively, you can select on-demand backup on the clone admin console.)
  2. Perform the clone as usual from your source instance > target instance.
  3. Because you’re parent update set has been retrieved in the backup, your target instance will have your parent update set along with your dev work which is in flight after the clone.
  4. Back on your target instance, you can set the parent update set back to work in progress, and un-parent it.
  5. On the source instance: Retrieved parent update set can now be cleaned up (i.e. deleted).

RaptorDB & Cloning

What happens if I clone from a RaptorDB instance to a MariaDB instance (or vice-versa)?

Clone will convert the target DB type to match the source DB type. 

Source InstanceTarget Instance (before clone)New Target (after clone)
RaptorRaptorRaptor
RaptorMariaRaptor
MariaRaptorMaria

 

Other FAQs

What is a draft? Why can I not delete these?

When you click on the UI to submit a clone, a record is created in the clone table, if you do not proceed with the clone or click out of the pop-up window the record will stay in your system as a 'draft' but this can be safely ignored. The reason these cannot be deleted is that they have a link to an internal instance at ServiceNow which manages the Clone requests.

Why is my clone 'on hold'?

When a clone State is set to 'Hold', this means the server rejected the clone request. Here are some of the most common reasons:

    • The clone was not ready to proceed by the scheduled time.
    • The target instance is not downgraded.
    • Problem with the backup used for the clone.

More information can be found in KB0694499 - Several clones in the state of 'Hold'

If I clone to another instance, will the release change?

Yes, as when you are cloning you are making a replica of your source instance, so it will match in table structure and version.

So if you clone a San Diego instance over Tokyo, the target instance will be a San Diego release.

Vice-versa if you clone a Tokyo instance over San Diego, the target instance will become a Tokyo release.

What is the difference between Standby Database and Source Instance? 

When cloning you may get an option to select either Standby database and Source instance.

This is an old option and is no longer needed when requesting clones, it is removed in the newer releases and you shouldn't see it appear, but if you still see it appear you can safely leave and ignore this option. 

What is the 'Clone From:' field? Does this determine whether the clone uses the live database or a backup? 

It is a common misconception that when scheduling a clone you can use this field to determine whether to clone from a backup file or the live database. This field is actually a legacy field relating to the previous in-app clone engine and does not have any purpose with the new clone from backup functionality.

When requesting a clone or creating a clone target in the authentication step it prompts with "Invalid username or password"?

The issue occurs because of one of the two causes below.

(I) Check if the target instance has Multi-factor authentication enabled. To verify this,

    1. Go to [sys_properties] table and search for the property [glide.authenticate.multifactor].
    2. If the value of this property is true, then the instance has Multi-factor authentication enabled.

(II) Check if the BasicAuth script include in the target instance is customized. 

In both the cases, when trying to create clone target you can find something similar in logs as below:

Script: 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

It is recommended to use a local admin user to authenticate the creation of a clone target or when scheduling a clone.

If the local admin user id that is used does not have the 'Web Service Access Only' checked, it will fail to authenticate and display the error message 'Invalid username or password'. This is due to the Business Rule 'Target Instance Validate' failing to validate the target instance via a SOAP call sent from the Script include 'InstanceRetrieverAjax'.

More information:

Error messages like "Invalid insert" and "Invalid username and password" are seen while creating clone target

Clone authentication to target instance fails with 'Invalid username or password'

Why have my email accounts been cloned to my target even when excluding data?

On occasion after a clone before turning on email you see that your production email account has been copied into your sub-production instance. You then check that you did have the exclude tables option checked but still seem to have come across.

When this issue has happened it is because normally on one occasion you have cloned to a sub prod and not excluded the table, therefore the sys_email_account has been copied across to your target instance, then you have a preserver for sys_email_account so it would have been preserved every clone after that.

Workaround: Clone Cleanup Script

    1. Log in on the production instance
    2. Check all the sys_id's of the email accounts that you would not ever want in your sub prods
    3. Create a clone cleanup script in your production that will delete all the email accounts with those sys_id's

Example Script:

// Add sys_ids to the encoded query (queryString)

// Like queryString = "sys_idIN206594e8db9eb3002e14c6fc34961998,6ab25213db003300eaf8e64305961927"

var queryString = "sys_idIN";

var emailclean = new GlideRecord('sys_email_account');

emailclean.addEncodedQuery(queryString);

emailclean.deleteMultiple();

This will mean after all clones it will delete these sys_email_accounts even if they were cloned over or not. If you add new email accounts you will need to add to this script, but this will stop the email accounts from ever coming from your source instance.

 

Release

All Releases

Resolution

Not Applicable


The world works with ServiceNow.

Sign in for more! There's more content available only to authenticated users Sign in for more!
Did this KB article help you?
Did this KB article help you?

How would you rate your Now Support digital experience?

*

Very unsatisfied

Unsatisfied

Neutral

Satisfied

Very satisfied

Very unsatisfied

Unsatisfied

Neutral

Satisfied

Very satisfied

What can we improve? Please select all that apply.

What are we doing well? Please select all that apply.

Tell us more

*

Do you expect a response from this feedback?

  • Terms and conditions
  • Privacy statement
  • GDPR
  • Cookie policy
  • © 2025 ServiceNow. All rights reserved.