NinjaOne Backup — Post-Migration: Confirming Cloud Sync is Working
Audience: T1 / T2 Use when: Verifying that NinjaOne's cloud upload leg is working correctly after migration — not just the local NAS leg.
A common post-migration failure mode: the local backup runs fine (NAS writes succeed) but the cloud sync never completes. The device shows "Success" but the cloud leg silently fails. This page confirms the cloud leg is actually working.
Why Cloud Sync Can Fail Silently After Migration
During the MSP360 era, cloud credentials were managed by DTC (Backblaze S3 keys). In NinjaOne, cloud credentials are managed by NinjaOne — the device must be able to reach NinjaOne's AWS endpoints. If the site has anything blocking outbound HTTPS to *.amazonaws.com or *.ninjarmm.com, the local backup runs but cloud upload silently fails or retries indefinitely.
Step 1 — Confirm the Cloud Leg Is Actually Succeeding
This is not the same as confirming the overall job succeeded:
- NinjaOne → device → Backup → click the most recent job entry
- Expand the detail — look for separate "Local" and "Cloud" leg statuses
- Both must show Success — not just the top-level job result
If Cloud shows "Skipped," "Failed," or is missing entirely: the cloud leg is not working. Proceed to Step 2.
Step 2 — Confirm Cloud Revisions Exist
Revisions visible in the restore browser come from either local or cloud:
- NinjaOne → device → Backup → Manage
- In the revision list, check the source indicator — some revisions are local-only, some are cloud-synced
- For full disaster recovery capability, you need cloud revisions — not just local NAS revisions
Step 3 — Test Cloud Connectivity From the Device
$endpoints = @(
"backup.ninjarmm.com",
"app.ninjarmm.com",
"s3.amazonaws.com",
"s3.us-east-1.amazonaws.com"
)
$endpoints | ForEach-Object {
$r = Test-NetConnection -ComputerName $_ -Port 443 -WarningAction SilentlyContinue
[PSCustomObject]@{
Endpoint = $_
Reachable = $r.TcpTestSucceeded
}
} | Format-Table -AutoSize
Any False result: cloud upload cannot work. Fix the firewall/DNS issue first.
Step 4 — Trigger a Manual Backup and Watch the Cloud Leg
- NinjaOne → device → Backup → Run Backup Plan
- Monitor Activities tab — watch for the job to complete
- When complete, expand the job detail and confirm both legs show Success
- Note: the cloud leg completes after the local leg — allow extra time on slow uplinks
Step 5 — Confirm Initial Cloud Upload Is Not Stuck
For a newly migrated site, the first cloud upload is a full image — this can take hours or days on a slow connection. It is not stuck if:
- The job is showing "In Progress" with an active cloud upload percentage
- Lockhart is running and consuming network I/O
- The NinjaOne activity log shows upload progress updating
It may be stuck if:
- The job has been "In Progress" for more than 48 hours with no percentage change
- Error 360 or 131 keeps firing and the percentage never advances
- Lockhart is idle (no CPU/network activity) but the job shows In Progress
If stuck: restart Lockhart and trigger a fresh run. NinjaOne's resume capability will pick up from the last successful block.
Expected Timeline for First Cloud Upload
| Data Size | Upload Speed | Estimated Time |
|---|---|---|
| 50 GB | 10 Mbps upload | ~12 hours |
| 100 GB | 10 Mbps upload | ~24 hours |
| 200 GB | 10 Mbps upload | ~48 hours |
| 500 GB | 10 Mbps upload | ~5 days |
| 500 GB | 50 Mbps upload | ~24 hours |
Most dental sites have 10–25 Mbps upload. Plan accordingly and don't flag slow initial uploads as failures.