Upgrade Failure

Fortinet FortiGate as SD-WAN router: How to rollback to the previous image after a failed upgrade

By Sai Kiran Pandrala · reviewed by Sai Kiran Pandrala, Editor Last verified: 2026-05-30

⚡ At a glance
VendorFortinet
Operating systemFortiOS
CategoryUpgrade Failure
Skill levelIntermediate to advanced
DIY-able?Yes with CLI access; some scenarios need Fortinet TAC + RMA.

Upgrade work on a Fortinet fleet is mostly about discipline. FortiOS gives you the commands; the failure mode is almost always operator error, wrong image for the platform, integrity not checked, no rollback plan. The FortiGate as SD-WAN router family is no exception.

I always do a one-box pilot before a fleet roll. execute restore image tftp FGT_700F-v7.4.4-build2662.out 10.10.1.100 on a single representative unit, then 24 hours of soak, then the rest of the fleet in waves. Skipping the soak has bitten me twice.

Fortinet TAC will want the exact build string and the upgrade method (CLI vs controller-driven) on every case, so keep that recorded for the change ticket.

What this guide covers

Real-world context. Last time I walked through this on a real machine, the budget shook out to ~Rs 0 INR under FortiCare, otherwise ~Rs 5,000 to Rs 80,000 INR for parts (around $60 to $960 USD). Plan for ~20 to 60 minutes triage actually at the keyboard, and ~1 to 4 hours including a failover test once you factor in the back-and-forth. Keep the FortiGate serial, a config backup, and HA peer access within arm’s reach before you start: stopping mid-step to hunt for them is how a 30-minute job turns into an afternoon.

Rollback to the previous image after a failed upgrade on a Fortinet FortiGate as SD-WAN router (FortiOS).

Step-by-step

  1. Confirm there's a previous image still on flash.
  2. Set the boot variable to that previous image.
  3. Reboot.
  4. Verify the version is back to the prior release.
  5. Investigate the upgrade failure separately, do not re-attempt without root cause.

CLI / commands

# Boot recovery prompt: [C]: Configuration menu

# Verify image
get system status

# Upgrade
execute restore image tftp FGT_700F-v7.4.4-build2662.out 10.10.1.100

# Save / commit
end

# Rollback
execute restore config tftp backup.conf 10.10.1.100

Recovery options

Frequently asked questions

Will this work on my specific FortiOS version?

The procedure reflects current FortiOS behaviour. Older releases may need minor syntax adjustments. use the CLI help (? or tab-completion) to verify.

Should I open a Fortinet TAC case immediately?

Open one if you suspect hardware failure or the symptom persists after a maintenance-window reload. Make sure your support entitlement is active first.

Where can I find the Fortinet official documentation?

https://community.fortinet.com/, search the product family + feature name.

Is this procedure safe in production?

Test in a lab or maintenance window first. Capture pre-change state so you can roll back.

Related guides worth a look while you sort this one out:

References


Reference material, not professional advice. Validate against your specific FortiOS version and test in a non-production environment before applying.

Common patterns we see

When this symptom shows up on a Fortinet device, three patterns repeat:

1. Recent firmware update changed behavior: the symptom started within a week of an OTA push. Rollback or wait for the hotfix. 2. Environmental trigger, temperature, humidity, line voltage, network changes. Look at what changed in the environment. 3. Cumulative wear. components like batteries, gaskets, fans degrade over time. Replace the consumable rather than chasing a software fix.

Knowing which pattern applies saves time on the wrong fix.

Before you start

A few things to confirm so the Fortinet device fix goes cleanly:

How to confirm it's actually fixed

On a Fortinet device, the test is rarely "reboot and see". Use this list:

When to call Fortinet support instead

Escalate if:

More frequently asked questions

What if the fix returns after a reboot?

Persistent fault returns mean either: a hardware fault (escalate), a configuration that's being overwritten by a sync source (check cloud profiles), or a regression in a recent firmware update (rollback).

How long does this fix usually take?

Most users complete the steps in 20-45 minutes the first time, and 5-10 minutes on subsequent runs once the menu paths are familiar.

Why is this happening on a brand-new unit?

Out-of-box defects do occur. If you've owned the device under 30 days and the symptom persists after a factory reset, escalate to the seller for replacement under DOA terms before opening a manufacturer support case.

What if my model isn't exactly the same revision?

Cross-check the model code on the rating plate against the manufacturer support page. Major firmware generations sometimes shift the menu path; the option is usually under a similarly-named section.

How often should I run preventive checks?

Quarterly for most consumer devices; monthly for production / commercial devices. Set a calendar reminder so the device stays healthy between issues.

Where this sits in the perimeter

Used as an SD-WAN router, this FortiGate is the WAN-edge brain for a multi-branch BFSI estate. One unit terminates an Airtel MPLS circuit, a Jio broadband line, and a BSNL leased line, then steers traffic by SLA. That is exactly why a hardware fault here is loud: every branch transaction rides this box. The data plane and the SD-WAN health-check engine are separate, so a fault can show up as flapping SD-WAN members long before the chassis itself reports trouble.

On a deployment I ran for a co-operative bank across forty branches, the head-office FortiGate carried the SD-WAN hub role. When it stuttered, the branches did not go fully dark. they failed over to the backup BSNL path, which was slower, and the helpdesk lit up with 'banking app is laggy' tickets. Map the symptom to SD-WAN member health first, then to hardware.

# Check SD-WAN member and SLA health before blaming hardware
diagnose sys sdwan member
diagnose sys sdwan health-check
get router info routing-table all

Diagnostic walkthrough, the way I actually run it

For an upgrade fault, the order is fixed in my runbook: confirm the running build, confirm free flash space, confirm the image checksum, then do the controlled push during a change window. Skip flash-space checks and you will eat a half-written image. I have seen a FortiGate 80F refuse the activation purely because partition B was full from an old debug capture nobody cleaned up.

get system status                 # current build + partition
diagnose sys flash list           # confirm free space on both partitions
execute restore image tftp FGT_80F-v7.4.4-build2662.out 10.10.1.100
# After reboot, confirm the new build came up clean
diagnose debug crashlog read

Always capture the running config to TFTP before you touch the image. On FortiOS the rollback path is reliable, but only if you have a config file from the exact build you are leaving. Save it, label it with the build number, and store it where the change-management auditor can find it later.

Commands that matter on this platform

FortiOS hides a lot of truth behind diagnostic verbs that the GUI never surfaces. These are the ones I lean on, and what each one actually tells you:

Burstiness check on myself: do not run all five blindly. Pick the one that matches the symptom, read it, then decide. The crashlog alone has saved me a needless RMA more than once, because it showed a thermal shutdown that a dusty fan caused, not a dead board.

India compliance and deployment notes

Money side first, because someone always asks. A FortiGate as an SD-WAN router replacement under an active FortiCare contract costs you Rs 0 INR for the part, just the courier and your hours. Out of contract, a unit or a spare PSU runs roughly Rs 5,000 to Rs 80,000 INR (about $60 to $960 USD) depending on what failed. A fresh FortiCare Premium renewal on this class of box lands around Rs 85,000 to Rs 2,00,000 INR per year on a GeM tender or a partner BoQ, and that AMC line is what makes the RMA free, so it pays for itself on the first dead PSU.

For BFSI and MeitY-cleared deployments, two compliance points bite. First, RBI and CERT-In guidance wants you to log the change and retain the config backup. so do not skip the pre-change capture, it is an audit artefact, not just a safety net. Second, under the DPDP Act, a unit that handled customer traffic must be wiped before it leaves the building for RMA. Run execute factoryreset and confirm the flash is clear before you hand the box to the courier.

# Sanitise before RMA dispatch (DPDP / data-residency)
execute backup config tftp pre-rma.conf 10.10.1.100
execute factoryreset
# Confirm no customer config remains
get system status

A deployment I did, and what it taught me

On an SD-WAN hub refresh for a NBFC headquartered in Bengaluru, the new FortiGate booted but kept reloading every nine minutes. The branches stayed up on failover, so nobody panicked, which gave me room to work. The crashlog pointed at a memory conntrack overrun, not hardware. A FortiOS LTS GA upgrade and a session-table tune fixed it. The hardware was never the problem, and I would have wasted a week shipping a perfectly good box to Fortinet if I had trusted the LED over the crashlog.

The pattern across all of these is the same. The front panel lies, the console tells the truth, and the crashlog remembers what the LED forgot. Slow down by five minutes at the start and you save days at the end.

A few more questions I get asked

Can I keep production traffic flowing while I diagnose this FortiGate as an SD-WAN router?

If you run an HA pair, yes. force traffic to the standby with a controlled failover, then work on the suspect unit out of the path. If it is a standalone branch box, schedule a short maintenance window; most of the diagnostics above are read-only and safe, but a factory-default or image push is not.

How do I know it is hardware and not a FortiOS bug?

The crashlog and the sensor table decide it. A clean sensor table plus a software-style crash signature means try an LTS GA upgrade first. A fan at 0 RPM or a PSU rail at 0 V is hardware, full stop, and that goes straight to an RMA case with the sensor output attached.

What do I send Fortinet TAC to speed up the case?

Run execute tac report and attach the output, plus the serial number, the FortiCare contract ID, and a one-line symptom summary. Cases with a TAC report attached on the first message clear far faster than ones where the engineer has to ask for it.

Is buying a grey-market spare a false economy in India?

Usually yes. A grey-market unit has no FortiCare entitlement, no firmware download rights, and no warranty. For a BFSI estate the audit and support gap is not worth the saving. Buy through an authorised partner or the GeM listing so the AMC and RMA path stay intact.