Cisco Catalyst 9200L Upgrade: Fixing “Super Package Already Added”
During an IOS XE upgrade on a standalone Cisco Catalyst 9200L switch, the standard one-shot install command did not proceed as expected. Instead, the switch returned this message:
Super package already added. Add operation not allowed.
The message did not mean that the new image was corrupt. It meant that the Add stage had already completed and the extracted packages were present on the switch. Repeating the Add operation was therefore rejected.
In this case, the upgrade continued with install activate. After the reload and initial verification, install commit was run. The switch was running the target release, booting in Install mode, and the final install state was C, meaning Activated and Committed.
This article documents the actual sequence, the flash-space observations, and the verification steps that prevented an unnecessary restart of the entire upgrade process.
Environment
- Platform: Cisco Catalyst C9200L-24P-4G
- Topology: Standalone switch
- Starting release: Cisco IOS XE 17.9.4a
- Target release: Cisco IOS XE 17.18.4
- Boot mode: Install mode
- Image transfer method: TFTP to local flash
Hostnames, IP addresses, MAC addresses, serial numbers, and environment-specific timestamps have been omitted or generalized.
Pre-Upgrade State
The original software state was checked with:
show install summary
The running 17.9.4a image was displayed with state C:
State (St): I - Inactive, U - Activated & Uncommitted,
C - Activated & Committed, D - Deactivated & Uncommitted
Type St Filename/Version
IMG C 17.09.04a...
This confirmed that the original release was already committed before the maintenance began.
Other useful pre-upgrade checks include:
show version
show boot
dir flash:
show install summary
Flash Space: Official Guidance and the Actual Result
Cisco's Catalyst 9200 upgrade instructions recommend cleaning up inactive files and ensuring that at least 1 GB of flash space is available to expand a new image.
The observed result in this upgrade was different, but it must be interpreted carefully.
After the target BIN file had been copied to flash and inactive files had been cleaned up, the switch showed:
805228544 bytes free
That is approximately 768 MiB, commonly described during the maintenance as about 800 MB. The upgrade completed successfully with that remaining space.
This does not establish 800 MB as a new minimum requirement. Required space can vary by platform, image, stack size, retained packages, and existing files. The Cisco 1 GB guidance remains the safer planning target. This case only records what succeeded on this specific standalone C9200L and image combination.
Copying the IOS XE Image
The target image was copied from a TFTP server to local flash:
copy tftp: flash:
The image used in this case was:
cat9k_lite_iosxe.17.18.04.SPA.bin
Before installation, verify that the expected file is present and that its size is reasonable:
dir flash:
For a production maintenance procedure, also compare the image hash with the value published by Cisco for the exact downloaded file.
The Standard One-Shot Command
The normal Install-mode command combines the Add, Activate, and Commit stages:
install add file flash:cat9k_lite_iosxe.17.18.04.SPA.bin activate commit
On a normal first attempt, the command performs the following work:
- Adds and validates the image.
- Extracts the BIN file into package files.
- Activates the new package set.
- Reloads the switch.
- Commits the new software state.
The Error: Super Package Already Added
In this case, running the one-shot command returned:
FAILED: Super package already added. Add operation not allowed.
install remove inactive can be used to discard added packages.
The key phrase is already added. The 17.18.4 package files had already been populated on flash by an earlier Add operation. The switch rejected another Add attempt because it was not starting from a clean, unadded state.
This error should not automatically lead to deleting files or repeating the same command. First determine the current install state.
Checks Before Choosing the Next Command
Use read-only commands to determine whether the target image is inactive, activated, uncommitted, or already committed:
show install summary
show install inactive
show install log
dir flash:
The correct recovery action depends on the output:
- If the target image is present as an added or inactive package, activation may be the next stage.
- If the target image is activated but state
U, it still requires commit verification and normally aninstall commit. - If the added package must be discarded and restarted, review the files selected by
install remove inactivebefore approving deletion. - If the install state is unclear or another operation is running, inspect the install log before changing anything.
The Command Used in This Upgrade
Because the package Add stage had already completed, the actual next command used was:
install activate
No image filename was supplied. The switch identified the added 17.18.4 package set and displayed the packages that would be activated.
It then displayed a reload warning:
This operation may require a reload of the system.
Do you want to proceed? [y/n]
After approval, the activation proceeded and the switch reloaded.
Operational impact: this is a disruptive action. The standalone switch reloads, its ports go down, and traffic is interrupted until the switch returns to service. It should only be executed during an approved maintenance window with console or recovery access available.
Post-Reload Verification and Commit
After the switch returned, the running version, boot mode, boot variable, and installation state were checked:
show version
show boot
show install summary
dir flash:
After confirming that the target release was running correctly, the new software state was committed:
install commit
The final verification confirmed:
- Running software: IOS XE 17.18.4
- Mode: INSTALL
- Boot variable for the next reload:
flash:packages.conf - Final image state:
C - Auto abort timer: inactive
The final install summary was equivalent to:
Type St Filename/Version
IMG C 17.18.04...
Auto abort timer: inactive
Why the Final C State Matters
Cisco defines the relevant install states as:
I- InactiveU- Activated and UncommittedC- Activated and CommittedD- Deactivated and Uncommitted
In this incident, install activate and install commit were performed as separate steps. The supplied maintenance PDF does not capture the final commit command, but the operator confirmed that it was run. The final show install summary output showed state C, and the auto-abort timer was inactive, independently confirming that the switch finished in a committed state.
Cisco documents Activate and Commit as separate stages when they are not combined in the one-shot command. If the state is U after activation, validate the new software and complete the commit step:
install commit
The deciding evidence is the actual show install summary state, not an assumption based on the last command entered.
Post-Upgrade Cleanup
Immediately after the upgrade, the switch had approximately 300 MB of free flash space. After the new release was verified, inactive installation files were removed:
install remove inactive
After cleanup, free space increased to approximately 1.2 GB.
This command can remove unused package files and BIN images. Always review the proposed deletion list before confirming it. Cleanup should follow successful version, boot-variable, install-state, and operational validation rather than being treated as the first response to every install error.
Practical Troubleshooting Workflow
- Confirm the current IOS XE version, boot mode, boot variable, and committed state.
- Check flash contents and available space.
- Verify the target image file and its hash.
- Review inactive-file cleanup output before approving deletion.
- Run the standard one-shot install command when the image has not already been added.
- If
Super package already addedappears, stop repeating the Add operation. - Use
show install summary,show install inactive, andshow install logto identify the current stage. - Activate only when the package has already been added and the observed state supports that action.
- After reload, verify the running version, Install mode,
packages.conf, and operational health. - Run
install commit, then verify stateCand confirm that the auto-abort timer is inactive. - Remove inactive files only after the new release is confirmed stable.
Key Takeaway
The most important lesson from this upgrade was that Super package already added was a state message, not proof of a damaged image.
The safe response was:
stop repeating Add
→ inspect the install state
→ continue from the completed stage
→ verify the new release after reload
→ install commit and verify C
→ clean up only after validation
The switch successfully upgraded from IOS XE 17.9.4a to 17.18.4. The recovery decision was based on the package state already present on the switch. The new release was explicitly committed, and the final committed status was verified rather than assumed.
References
- Cisco Catalyst 9200 Series Release Notes, Cisco IOS XE 17.18.x - Upgrading and Downgrading the Switch Software
- Cisco - Upgrade Catalyst 9200 Switches
- Cisco - Upgrade Guide for Catalyst 9000 Switches
- Cisco Catalyst 9200 Series System Management Configuration Guide, IOS XE 17.18.x - Software Boot Modes and Package Management
Note: This article is based on an actual maintenance record. Device-identifying information and internal network details have been removed. Commands that activate software, reload the switch, or delete inactive files can interrupt service or remove rollback files. Verify the exact platform, release notes, image, package state, and maintenance plan before using them.
Comments
Post a Comment