Upgrade Failure

Juniper SRX300: How to recover from a corrupted image during upgrade

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

⚡ At a glance
VendorJuniper
Operating systemJunos OS
CategoryUpgrade Failure
Skill levelIntermediate to advanced
DIY-able?Yes with CLI access; some scenarios need JTAC + RMA.

An upgrade on Juniper SRX300 is really three jobs: stage the image, verify integrity, activate. Skipping verify is how you end up with a half-bricked unit at 2am, I have done it exactly once and learned for life.

Junos OS provides clear pre- and post-checks. `show version` before and after is the bare minimum; ideally also `request support information | save /var/tmp/rsi.txt` so JTAC has a clean before/after diff.

The procedure below assumes you can take a maintenance window. If you cannot, ISSU / hitless options exist on some platforms but vary by code train: check Junos OS release notes first.

What this guide covers

Recover from a corrupted image during upgrade on a Juniper SRX300 (Junos OS).

Step-by-step

  1. If at the boot loader, boot the prior image still on flash.
  2. If the active is corrupt and a standby still works (HA), force failover first.
  3. Re-download the image from the vendor portal.
  4. Verify checksum before copying to the device.
  5. Reinstall the new image and reboot.

CLI / commands

# Boot recovery prompt: loader>

# Verify image
show version

# Upgrade
request system software add /var/tmp/junos-install.tgz

# Save / commit
commit

# Rollback
rollback 1

Recovery options

Frequently asked questions

Will this work on my specific Junos OS version?

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

Should I open a JTAC 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 Juniper official documentation?

https://kb.juniper.net/. 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 Junos OS version and test in a non-production environment before applying.

Common patterns we see

When this symptom shows up on a Juniper 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 Juniper device fix goes cleanly:

How to confirm it's actually fixed

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

Escalation guide

For a Juniper device, the right escalation depends on impact:

More frequently asked questions

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.

Will this void my warranty?

Applying official firmware updates and following the user manual will not affect warranty. Opening sealed components, jumping safety circuits, or using third-party parts can void warranty in most jurisdictions.

Should I update firmware first or last?

Update firmware first if a release note specifically mentions your symptom. Otherwise, finish the troubleshooting flow first, then update; that way you can isolate whether the update or the underlying fix solved it.

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).

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.

Topology deep dive, how the SRX300 actually moves a packet

The Junos OS RPD (routing protocol daemon) holds the BGP / OSPF tables, and the kernel installs them into the PFE forwarding table via the rpd-to-kernel socket. On a busy NSEL Mumbai colo edge with 1.2 million BGP routes from two ISP feeds (Reliance Jio + Airtel), the rpd memory footprint hits 6.4 GB. The SRX1500 ships 8 GB DRAM, and you will see the RE swap to disk during convergence storms if you do not damp the import. `show route summary` is your friend.

The SRX1500 boot sequence runs U-Boot → Junos loader → Junos OS. If the loader> prompt appears and stays there, the bootloader survived but the Junos OS image on flash has gone bad. The recovery is to TFTP a known-good image from a 169.254.0.0/16 link-local laptop. On the BFSI side, we keep a staging laptop at every colo with a JTAC-approved image archive named by `sha256` for exactly this scenario.

On the SRX300 / SRX340 / SRX1500 platform, the data-plane is built around a Juniper Trio chipset that splits the forwarding pipeline from the routing engine. The implication for an enterprise network engineer is direct: a `show chassis hardware` that reports the Trio PFE as up does not mean the routing engine is healthy. The two clocks run independently. In a BFSI data center, I always check both with `show chassis routing-engine` and `show chassis hardware extensive` before I touch anything.

Configuration walkthrough with Junos commit safety

The Junos commit model is two-stage by default: candidate config first, then `commit`. On a production SRX1500 at a BFSI data center, I always run `commit check` first, then `commit confirmed 5`. The `confirmed 5` flag rolls back automatically after five minutes if you do not run a second `commit` to make it permanent. This single habit has saved me from a midnight session at a colo cage more than once.

Rollback in Junos is granular. `rollback 1` brings back the last commit, `rollback 5` brings back five commits ago, and `show | compare rollback 1` diffs the live config against the previous one. On a Reliance Industries change window, our standard workflow is: open the candidate, `load merge terminal relative`, paste the change, `show | compare`, `commit check`, `commit confirmed 5`, then a final `commit` only after the verification script in `request system commands` passes.

Junos OS supports `commit comment` and `commit synchronize` (for dual-RE chassis). On the SRX1500 single-RE platform, the `synchronize` flag is a no-op, but I leave it in the muscle-memory commit script. On a dual-RE MX series, omitting `synchronize` is a silent split-brain risk that BFSI auditors will flag. The ITSAR network device baseline (TEC 31318) calls out config sync as a mandatory control.

Troubleshooting commands I keep on the laminated card

India compliance and procurement notes (MeitY, DPDP, GeM)

The MeitY-cleared list (the TEC Mandatory Testing and Certification of Telecom Equipment list under ITSAR) covers Juniper SRX300, SRX340, and SRX1500 under the network security device family. For a BFSI deployment, the procurement team must verify the device serial is on the cleared list. If it is not, the audit finding lands in the next RBI cyber security framework audit, and the network handover is delayed.

The GeM (Government e-Marketplace) listing for SRX340 at the time of writing is INR 4,87,500 per unit, with SmartNet renewal at INR 85,000 per year. The BoQ for a typical BSE colo deployment includes 2 SRX340 in cluster, 1 EX4300 management switch, 2 RJ45 console servers (Opengear), and the AMC line item for 3 years totalling around INR 14,75,000. The procurement cycle is 90-120 days end-to-end through GeM.

Real-world deployment I did

An Outlook from the SOC desk at a private bank in HITEC City Hyderabad: the SRX1500 IDP licence had silently expired and the JTAC case said Renewal Pending while traffic was still flowing. The renewal SKU was INR 1,52,000 for one year. We pushed the temporary licence over `request system license add terminal` from the JTAC portal, brought the IDP profile back online, and only then did the AAA-driven daily log push to the Splunk SIEM start matching the expected event volume.

Working a NSEL near-market cutover at Bandra Kurla Complex, the BFSI client had two SRX300s as the WAN edge for a Reliance Jio backhaul circuit. Both went brown-out at the same instant. Turned out the rack PDU was a refurb pulled from a previous tenant and had drifted to 198V. The SRX300 PSU tolerates that, but the 8-port Junos line card sulked. A `show chassis environment` showed Temp OK / Power Marginal, exactly the sort of mid-impact warning that needs a five-minute walk to the cage, not a JTAC case.

Extended FAQs from the field

What if `show chassis environment` reports Fan Tray Failed but the unit is cool?

Check the fan tray seating first: at India colo sites, dust loading and vibration from BMS construction nearby can dislodge a tray. Reseat, wait 60 seconds, recheck. If still failed, swap the tray (FRU SRX-FAN-TRAY is field-replaceable on the SRX1500). The tray FRU price is approximately INR 38,000 from the JTAC spares line.

What is the realistic RMA turnaround in India?

JTAC depot in Bengaluru ships in 7-10 working days for in-warranty SRX300 / SRX340. For SRX1500 the depot is in Mumbai and the shipping is usually 5-7 working days. Out of warranty units go via the JTAC Spares purchase line at roughly 60-70% of the new BoQ price. Always confirm the serial entitlement via the support portal before opening the case.

Should the SRX cluster run active-active or active-passive in a BSE colo?

Active-passive (`chassis cluster reth`) is the safer default. Active-active needs careful flow synchronisation tuning and the BFSI NOC must be ready to handle asymmetric paths. On every NSEL colo I have built, we stay active-passive unless the trading throughput specifically demands the doubled forwarding capacity.

Does the Junos OS upgrade need a maintenance window?

Yes. Even with `commit confirmed` and a dual-RE chassis, the FPC reboots during the package install. On the SRX1500 single-RE platform, this is a 6-8 minute outage. I schedule them in the 02:00-04:00 IST window after coordinating with the BFSI NOC on-call, the upstream Reliance Jio / Airtel ISP, and the downstream switch fabric team.