Sandbox refresh failed / Sandbox is in Copying status
A sandbox refresh job failed mid-process or is stuck in Copying. Common causes: refresh interval not yet met, source production org changed during the copy, or platform infrastructure issue. Check status, wait if needed, file a support case for stuck jobs.
Also seen asSandbox refresh failed·Sandbox is in Copying·sandbox refresh stuck·sandbox refresh limit
Sandbox refresh copies data + metadata from production into a sandbox. The process can take from minutes (Developer sandbox) to several hours (Full Copy sandbox). Failures or stuck jobs have a small set of usual causes.
Refresh interval limits
Each sandbox tier has a minimum refresh interval:
| Sandbox type | Minimum refresh interval |
|---|---|
| Developer | 1 day |
| Developer Pro | 1 day |
| Partial Copy | 5 days |
| Full Copy | 29 days |
If you try to refresh inside the interval, the platform refuses with Refresh date hasn't been met. The next allowed date is shown in Setup → Sandboxes.
This is a hard cap — even support can't override it for cost-control reasons.
When the refresh is stuck in "Copying"
Sometimes a refresh starts but never completes. The sandbox shows "Copying" indefinitely.
Step 1: wait
A Full Copy with millions of rows can legitimately take 24+ hours. Check the Refresh Status in Setup → Sandboxes. If the timestamp is updating, the platform is still working.
Step 2: check Trust Status
status.salesforce.com. Sandbox copy jobs sometimes pause during platform maintenance.
Step 3: file a support case
If "Copying" persists for >48 hours with no progress, only Salesforce support can investigate. They can read internal logs and either:
- Restart the copy
- Cancel it (lets you retry)
- Tell you to file a different case (data corruption issues)
Provide the sandbox name, the production org's instance, and the timestamp the copy started.
When refresh fails outright
The status changes to "Failed" with an error message. Common shapes:
| Error | Cause |
|---|---|
| Source org configuration change during copy | Someone enabled/disabled a feature mid-refresh; retry |
| Storage limit exceeded on target | The sandbox's storage is full; clear space then refresh |
| Object metadata invalid | A custom object was deleted partially; fix in production first |
Retry from Setup → Sandboxes → click the failed sandbox → Refresh (if the interval has been met).
A subtle gotcha: sandbox post-copy script timeouts
If your sandbox is configured with a post-copy Apex class, that class has 1 hour to complete. If it doesn't, the refresh is marked failed even though the data copy itself succeeded.
Diagnose: query AsyncApexJob in the new sandbox for the post-copy class. If it has a CompletedDate, success; if not, it timed out.
Fix: optimize the post-copy script (move heavy work to a queueable that the script enqueues, returning quickly).
Plan around refresh limits
If your team needs frequent test resets:
- Use a Developer sandbox (1-day refresh) for daily resets
- Use a Partial Copy (5-day) for sample-data testing
- Reserve Full Copy for staging-the-release scenarios where you need exact production data
Trying to refresh a Full Copy weekly is fighting the platform's design.
