Cisco Catalyst 9800 WLC Hitless Upgrade Guide (N+1 + APSP) | Real World Upgrade of ~3000 APs

Cisco Catalyst 9800 WLC Hitless Upgrade Guide (N+1 + APSP)

The goal of this post is to share how we planned, executed, and monitored the upgrade while trying to avoid a total wireless outage for the organization. This upgrade included new WLC code and new AP code via the APSP. We usually monitor APSP releases for bugs that may affect our environment. By the time we are ready for a WLC upgrade, there is inevitably an APSP we need to consider as well. This procedure should only be attempted by someone highly familiar with Catalyst 9800 controllers.

This upgrade was performed in a 24/7 multi-hospital environment with over 100 locations and more than ~3000 access points. The code was tested for about a month on a test WLC with a collection of 8×5 clinics containing important wireless clients such as laptops, workstations on wheels, thin clients, Vocera badges, Cisco 8821 phones, Zebra handhelds, nurse call iPhones, GE patient monitoring, and radiology medical imaging devices. Testing new code is very important as there can be very serious bugs that only affect your specific deployment. Also rolling back a production WLC upgrade takes an extreme amount of time and will likely lead to downtime.

If you have comments or suggestions on how you execute this process, please leave a comment at the bottom.




Initial Environment Overview

System Model Role Base Code APSP Notes
WLC-prod-HA Catalyst 9800-80 HA Pair Primary Production WLC 17.9.6 17.9.6.201 Starting controller for the upgrade and intended final production controller after completion.
WLC-test Catalyst 9800-80 Standalone N+1 Hitless Upgrade WLC 17.15.5 None Temporary AP destination during the N+1 hitless upgrade. APSP intentionally not installed yet because APSP is applied later on the primary.
Final Target State Catalyst 9800-80 HA Pair Post-upgrade production WLC 17.15.5 17.15.5.201 Final software state after base code upgrade and APSP deployment.


High-Level Timeline

  • Entire WLC base code hitless upgrade took approximately 4 hours.
  • AP image predownload via CAPWAP took approximately 2 hours.
  • Rolling AP move to N+1 took approximately 1 hour 40 minutes.
  • Fallback to primary took approximately 20 minutes.
  • APSP add took approximately 3 minutes.
  • APSP predownload over HTTPS took approximately 1 hour 15 minutes.
  • APSP rolling upgrade took approximately 1 hour.
  • Total end-to-end maintenance window was approximately 8 hours.


Preparation Steps

  • Complete change process and organization-level communication.
  • Obtain the correct WLC and APSP images from Cisco.
  • Validate primary HA redundancy status.
  • Ensure primary and N+1 have mobility messaging set up and working.
  • Ensure N+1 has the same AP upgrade configuration as the primary.
  • Take WLC configuration backups.
  • Export a pre-upgrade AP report to validate AP count after the upgrade.
  • Obtain console access to all WLCs.
  • Use AP authorization restrictions to prevent APs from joining unrelated WLCs.

Operational note: We use one person to drive the upgrade while screen sharing. Other wireless engineers monitor and support. We have run into issues in the past with multiple people using the software upgrade GUI and exhausting controller VTY ports. Treat it like flying an airplane: one pilot is flying, the others are monitoring and communicating.


Hitless N+1 WLC Upgrade


Step 1 – Validate WLC State

Validate the primary HA pair, mobility between controllers, and AP upgrade settings. The N+1 controller must have the same AP upgrade configuration. For example, if your primary WLC is set to 25% staggered iterations but your N+1 WLC is set to one-shot, APs may move to the N+1 in staggered groups but move back to the primary all at once, causing an avoidable outage.

Validate HA redundancy

Command:

show redundancy

What to validate:

  • Communications should show Up.
  • The active controller should show ACTIVE.
  • The standby controller should show STANDBY HOT.
  • If the wrong WLC is active, use a redundancy force switchover prior to upgrade
CLI Output: show redundancy
WLC-prod-HA#show redundancy

Redundant System Information :
------------------------------
Available system uptime = 14 weeks, 6 days
Switchovers system experienced = 0
Standby failures = 1
Last switchover reason = none

Hardware Mode = Duplex
Configured Redundancy Mode = sso
Operating Redundancy Mode = sso
Maintenance Mode = Disabled
Communications = Up

Current Processor Information :
-------------------------------
Active Location = slot 1
Current Software state = ACTIVE
Image Version = Cisco IOS XE 17.9.6
BOOT = bootflash:packages.conf

Peer Processor Information :
----------------------------
Standby Location = slot 2
Current Software state = STANDBY HOT
Image Version = Cisco IOS XE 17.9.6
BOOT = bootflash:packages.conf

Validate mobility between production and N+1 WLCs

Command:

show wireless mobility summary

What to validate:

  • The production WLC and N+1 WLC should be in a mobility group.
  • The N+1 WLC should show Status Up.
  • Mobility must be healthy because the WLCs coordinate AP movement and fallback using mobility messaging.
CLI Output: show wireless mobility summary
WLC-prod-HA#show wireless mobility summary

Mobility Summary

Wireless Management VLAN: 101
Wireless Management IP Address: 192.0.2.10
Mobility Control Message DSCP Value: 48
Mobility Keepalive Interval/Count: 10/3
Mobility Group Name: example-9k
Mobility Multicast Ipv4 address: 0.0.0.0
Mobility Multicast Ipv6 address: ::

Controllers configured in the Mobility Domain:

IP             Public IP      MAC Address      Group Name    Status   PMTU
-------------------------------------------------------------------------
192.0.2.10     N/A            xxxx.xxxx.xxxx   example-9k    N/A      N/A
192.0.2.20     192.0.2.20     xxxx.xxxx.xxxx   example-9k    Up       1385
192.0.2.30     192.0.2.30     xxxx.xxxx.xxxx   example-9k    Up       1385
192.0.2.40     192.0.2.40     xxxx.xxxx.xxxx   example-9k    Up       1385

Validate AP upgrade settings

Command:

show run all | i ap upgrade

What to validate:

  • The primary WLC and N+1 WLC should have matching AP upgrade behavior.
  • ap upgrade staggered 25 means APs will be moved in rolling groups instead of all at once.
  • I recommend client-steering and/or client-deauth but it is up to you and how your clients will react to 802.11v or being deauthenticated right before it’s AP reloads.
  • Be careful with one-shot behavior on the N+1 WLC. A mismatch here can create the outage you were trying to avoid.
CLI Output: show run all | i ap upgrade
WLC-prod-HA#show run all | i ap upgrade
no ap upgrade method https
ap upgrade staggered 25
ap upgrade staggered client-steering
ap upgrade staggered iteration completion 90
ap upgrade staggered iteration timeout 10
WLC-test#show run all | i ap upgrade
no ap upgrade method https
ap upgrade staggered 25
ap upgrade staggered client-steering
ap upgrade staggered iteration completion 90
ap upgrade staggered iteration timeout 10


Step 2 – Add New WLC Image

Upload the target WLC image. From the GUI, choose the install file, set the N+1 parameters, and click Download and Install. Once this starts, there is no longer much to control until the APs have predownloaded and moved in iterations to the N+1. Your next major decision point is when to activate and reboot the now-empty primary WLC.

Once started, do not stop or abort the upgrade. If you hit an unexpected error, contact TAC rather than trying to manually fix it and potentially putting the WLC into an inconsistent state.

Adding the new controller image


Adding the new controller image

GUI install log excerpt
install_add: START Wed Jun 10 20:05:47 CST 2026
install_add: Adding PACKAGE
install_add: Checking whether new add is allowed ....

--- Starting initial file syncing ---
[1]: Copying bootflash:C9800-80-universalk9_wlc.17.15.05.SPA.bin from chassis 1/R0 to chassis 2/R0
[2]: Finished copying to chassis 2/R0
Info: Finished copying bootflash:C9800-80-universalk9_wlc.17.15.05.SPA.bin to the selected chassis
Finished initial file syncing

--- Starting Add ---
Performing Add on all members
  [1] Add package(s) on chassis 1/R0
  [1] Finished Add on chassis 1/R0
  [2] Add package(s) on chassis 2/R0
  [2] Finished Add on chassis 2/R0
Checking status of Add on [1/R0 2/R0]
Add: Passed on [1/R0 2/R0]
Finished Add

Image added. Version: 17.15.05.0.8370
SUCCESS: install_add Wed Jun 10 20:13:18 CST 2026


Step 3 – AP Predownload

After code is installed to the WLC, the controller begins predownloading the AP image. How long this takes depends on the WLC platform, number of APs, WAN connectivity, and AP distribution across site tags and WNCD processes.

For ~3000 APs using CAPWAP image distribution, this step took about two hours. A maximum of about 800 APs were predownloading at any given time. You can see in the picture of the WLC management interface that WLC uplink utilization barely changes during this step and also makes clear why it takes so long. The AP images around around 50-100 megabytes each. Times 3000 APs, that is 150 to 300 gigabytes of data that must be transfered. HTTPS image distribution was not available for us at this stage because the starting code was 17.9.6. We used HTTPS later for the APSP after upgrading to 17.15.5.

WLC Stats of AP predownload via CAPWAP method


AP predownload completed

AP image predownload in progress


AP image predownload in progress

show ap image
show ap image | i Predownloading
CLI Output: show ap image (Predownload In-Progress)
WLC-prod-HA#show ap image
Total number of APs  : ~3000

Number of APs
        Initiated                  : 0
        Downloading                : 0
        Predownloading             : 800
        Completed downloading      : 2301
        Completed predownloading   : 0
        Not Supported              : 0
        Failed to Predownload      : 0
        Predownload in progress    : Yes

AP Name                           Primary Image          Backup Image            Predownload Status   Predownload Version   Method
----------------------------------------------------------------------------------------------------------------------------------
AP-EXAMPLE-001                    17.9.6.201             17.9.6.40               Predownloading       17.15.5.36            CAPWAP
AP-EXAMPLE-002                    17.9.6.201             17.9.6.40               None                 0.0.0.0              N/A
AP-EXAMPLE-003                    17.9.6.201             17.9.6.40               Predownloading       17.15.5.36            CAPWAP

Near the end of predownload there were only a small number of APs remaining. One AP appeared stuck, so I manually rebooted it. It was marked failed and the install continued within about one minute after the AP reboot.

CLI Output: show ap image (Predownload Near Completion)
WLC-prod-HA#show ap image summary
Total number of APs  : ~3000

Number of APs
        Initiated                  : 0
        Downloading                : 0
        Predownloading             : 81
        Completed downloading      : 2301
        Completed predownloading   : 3281
        Not Supported              : 0
        Failed to Predownload      : 0
        Predownload in progress    : Yes

WLC-prod-HA#show ap image | i Predownloading
        Predownloading             : 1
Slow-AP                        17.9.6.201             17.12.5.206                Predownloading        17.15.5.36            0                 0                 CAPWAP
        Predownloading             : 1
 

Not sure if it’s a bug or intended but this command does not respect ‘term len 0’ instead every paged output, outputs the header rows. My guess is this is due to how the GUI displays the progress popup.

AP predownload completed


AP predownload completed


Step 4 – Rolling AP Move to N+1

Once AP predownload is complete, the AP upgrade process starts moving APs in iterations to the N+1 WLC. We use 25% per iteration, which usually results in 6-8 iterations. I have graphically mapped out the iterations in the past to validate it does do a good job of rebooting APs in a way that maintains wireless connectivity. We also have had no complaints caused by the N+1 upgrades.

Rolling AP upgrade starting


Rolling AP upgrade starting

AP upgrade statistics


AP upgrade statistics

Useful GUI filters:

Status: In-Progress
Status is not equal to Upgraded and Joined Member
Filtering APs Upgrading and Moving to N+1


Filtering APs still upgrading

On the primary WLC, show ap upgrade shows completed, in-progress, and pending iterations. On the N+1 WLC, show ap summary gives a real-time count of APs now joined to that controller. The counters on the active WLC lagged behind what was actually connected to the N+1, and the GUI statistics dialog did not always update unless it was closed and reopened.

Command:

show ap upgrade

Note: This output was captured during AP upgrade and move on the primary WLC. This is useful to monitor rolling AP movement to the N+1 WLC and validate iteration progress.

CLI Output: show ap upgrade
WLC-prod-HA#show ap upgrade
Status: In progress
Fallback type: Fallback only

From version: 17.9.6.40
To version: 17.15.5.36

Started at: 06/10/2026 22:21:13 CST
Configured percentage: 25
Percentage complete: 77
Expected time of completion: 06/10/2026 22:27:13 CST

Client steering: Enabled
Accounting percentage: 70%
Iteration expiry time: 9 minutes
Accounting action: None

Source controller: WLC-prod-HA
Destination controller: WLC-test

Progress Report
---------------
Iterations
----------
Iteration              Start time                          End time                    AP count
------------------------------------------------------------------------------------------------
0                      06/10/2026 22:21:13 CST             06/10/2026 22:21:13 CST     0
1                      06/10/2026 22:21:13 CST             06/10/2026 22:33:19 CST     728
2                      06/10/2026 22:33:19 CST             06/10/2026 22:45:28 CST     682
3                      06/10/2026 22:45:28 CST             06/10/2026 22:57:33 CST     632
4                      06/10/2026 22:57:33 CST             06/10/2026 23:09:39 CST     560
5                      06/10/2026 23:09:39 CST             ONGOING                     0

Upgraded
--------
Number of APs: 3038
AP Name                          Radio MAC               Iteration       Status               Site
----------------------------------------------------------------------------------------------------
AP-1-X                           005d.xxxx.xxxx          1               Joined Member        SiteTag1
AP-2-X                           0845.xxxx.xxxx          1               Joined Member        SiteTag2
AP-3-X                           0845.xxxx.xxxx          1               Joined Member        SiteTag3

Command:

show ap upgrade

Note: This output was captured from the N+1 WLC after the final AP move iteration completed. The primary WLC was still rebooting, and this state confirms all APs are waiting for fallback.

CLI Output: show ap upgrade
WLC-test#show ap upgrade
Status: Complete, fallback awaited
Fallback type: Fallback only

From version: 17.9.6.40
To version: 17.15.5.36

Started at: 06/10/2026 22:21:13 CST
Configured percentage: N/A
Percentage complete: 100
End time: 06/10/2026 23:48:59 CST

Source controller: WLC-prod-HA
Destination controller: WLC-test

Progress Report
---------------
Iterations
----------
Iteration              Start time                          End time                    AP count
------------------------------------------------------------------------------------------------
0                      06/10/2026 22:21:13 CST             06/10/2026 22:21:13 CST     0
1                      06/10/2026 22:21:13 CST             06/10/2026 22:33:19 CST     728
2                      06/10/2026 22:33:19 CST             06/10/2026 22:45:28 CST     682
3                      06/10/2026 22:45:28 CST             06/10/2026 22:57:33 CST     632
4                      06/10/2026 22:57:33 CST             06/10/2026 23:09:39 CST     560
5                      06/10/2026 23:09:39 CST             06/10/2026 23:21:44 CST     443
6                      06/10/2026 23:21:44 CST             06/10/2026 23:33:49 CST     254
7                      06/10/2026 23:33:49 CST             06/10/2026 23:42:54 CST     61
8                      06/10/2026 23:42:54 CST             06/10/2026 23:48:59 CST     3

Upgraded
--------
Number of APs: 3363
AP Name                          Radio MAC               Iteration       Status               Site
----------------------------------------------------------------------------------------------------
AP-1-X                           005d.xxxx.xxxx          1               Joined               SiteTag1


Step 5 – Activate and Commit Base Code

When all APs have moved off the primary WLC to the N+1, the GUI allows you to click Save Configuration and Activate. This reboots the now-empty primary WLC and brings it up on the WLC image 17.15.5.

In this step, the WLC appeared idle for about five minutes before it stopped responding to ping and rebooted. It was completely ping down for around 5 minutes. After it reloaded, the base image was committed from the GUI and validated with CLI. This is the step where you want WLC console access to monitor it’s progress once it is network unreachable.

show install summary
CLI Output: show install summary
WLC-prod-HA#show install summary
[ Chassis 1/R0 2/R0 ] Installed Package(s) Information:
State (St): I - Inactive, U - Activated & Uncommitted,
            C - Activated & Committed, D - Deactivated & Uncommitted
--------------------------------------------------------------------------------
Type  St   Filename/Version
--------------------------------------------------------------------------------
IMG   C    17.15.05.0.8370

--------------------------------------------------------------------------------
Auto abort timer: inactive
--------------------------------------------------------------------------------

What to validate:

  • Image is status ‘C’ for Activated & Committed
  • Auto abort timer is inactive
Base image committed


Base image committed


Step 6 – AP Fallback to Primary

After the primary WLC is back up and Fallback after Upgrade is enabled, APs begin moving from the N+1 back to their original upgraded WLC. This may take up to 20 minutes to begin after the WLC is reachable, so be patient.

Mobility messaging between the controllers must be working because that is how the controllers coordinate the move. This fallback was faster than the original move because the APs were already running 17.15.5 and only needed a CAPWAP restart, not a full image upgrade.

Command:

show ap upgrade

Note: This output was captured on the N+1 WLC at completion of APs moving back to the primary WLC.

CLI Output: show ap upgrade
WLC-test#show ap upgrade
Status: Complete
Move Report Name: AP_upgrade_from_WLC-prod-HA

From version: 17.15.5.36
To version: 17.15.5.36

Configured percentage: 25
Percentage complete: 100

Client steering: Enabled
Client de-authentication: Enabled
Accounting percentage: 75%
Iteration expiry time: 9 minutes
Accounting action: None

Source controller: WLC-test
Destination controller: WLC-prod-HA

Progress Report
---------------
Iterations
----------
Iteration              Start time                          End time                    AP count
------------------------------------------------------------------------------------------------
0                      06/11/2026 00:15:32 CST             06/11/2026 00:15:36 CST     0
1                      06/11/2026 00:15:36 CST             06/11/2026 00:17:44 CST     752
2                      06/11/2026 00:17:44 CST             06/11/2026 00:19:50 CST     695
3                      06/11/2026 00:19:50 CST             06/11/2026 00:21:58 CST     635
4                      06/11/2026 00:21:58 CST             06/11/2026 00:24:03 CST     558
5                      06/11/2026 00:24:03 CST             06/11/2026 00:26:09 CST     445
6                      06/11/2026 00:26:09 CST             06/11/2026 00:28:14 CST     238
7                      06/11/2026 00:28:14 CST             06/11/2026 00:30:20 CST     35
8                      06/11/2026 00:30:20 CST             06/11/2026 00:32:25 CST     3

Upgraded
--------
Number of APs: ~3000


APSP Hitless Upgrade


Step 1 – Prepare HTTPS AP Image Download

If you were not installing an APSP, you could move to post-upgrade validation at this point. In this case, after all APs were running 17.15.5 base code, we applied the 17.15.5 APSP using a hitless procedure.

For APSP, no N+1 controller is needed because the WLC can allow APs running the base code and APs running the APSP to be joined at the same time.

We used HTTPS image distribution now that the WLC was on a supported version. One caveat: HTTPS image distribution had issues with an internal domain-issued certificate where the certificate path included an intermediate CA. To work around this, we changed the HTTPS trustpoint to the WLC internal self-signed certificate. After changing it, wait for the GUI to stabilize. If you see broken images or incomplete GUI pages, wait a few minutes or hard-refresh the browser.

Command:

ap upgrade method https

What we want to see:

  • The WLC should be configured to use ap upgrade method https.
  • The staggered AP upgrade settings should still match the intended hitless upgrade behavior.
  • client-deauth and client-steering should match your intended client handling behavior.
  • The iteration completion and timeout values should match what you want to use for the APSP rolling AP upgrade.

Verify with:

show run all | i ap upgrade
CLI Output: show run all | i ap upgrade
WLC-prod-HA#show run all | i ap upgrade
ap upgrade method https
ap upgrade staggered 25
ap upgrade staggered client-deauth
ap upgrade staggered client-steering
ap upgrade staggered iteration completion 70
ap upgrade staggered iteration timeout 9


Step 2 – Add APSP

Install the APSP image from Administration → Software Management → AP Service Pack (APSP). Like the WLC code install, once you start the process, do not interrupt it.

Adding APSP package


Adding APSP package

GUI APSP install log excerpt
INSTALL ADD OPERATION:

--- Analyzing file C9800-universalk9_wlc.17.15.05.CSCwt44784.SPA.apsp.bin ---
Package Type is APSP
Initiating INSTALL_ADD operation for the package C9800-universalk9_wlc.17.15.05.CSCwt44784.SPA.apsp.bin
install_add: START Thu Jun 11 00:49:35 CST 2026
install_add: Adding SMU
install_add: Checking whether new add is allowed ....
install_add: install-add is allowed.

--- Starting initial file syncing ---
[1]: Copying bootflash:C9800-universalk9_wlc.17.15.05.CSCwt44784.SPA.apsp.bin from chassis 1/R0 to chassis 2/R0
[2]: Finished copying to chassis 2/R0
Finished initial file syncing

--- Starting SMU Add operation ---
Performing SMU_ADD on all members
[1] SMU_ADD package(s) on chassis 1/R0
[1] Finished SMU_ADD on chassis 1/R0
[2] SMU_ADD package(s) on chassis 2/R0
[2] Finished SMU_ADD on chassis 2/R0
Checking status of SMU_ADD on [1/R0 2/R0]
SMU_ADD: Passed on [1/R0 2/R0]
Finished SMU Add operation

SUCCESS: install_add Thu Jun 11 00:52:04 CST 2026

Once the APSP is added, activate it. The iteration configuration should be the same as what was used for the N+1 upgrade. Selecting the APSP and clicking Activate starts AP predownload.

Activating APSP


Activating APSP


Step 3 – APSP Predownload

APSP predownload took about 1 hour 15 minutes. The majority of APs were done around 40 minutes, but some APs were stuck or on slow WAN links.

HTTPS image upgrade appeared to place significant load on the WLC:

  • GUI and CLI became extremely unresponsive.
  • SNMP monitoring timed out intermittently (that is the empty gaps in the image).
  • No obvious client connectivity issue was observed, but that was not deeply validated.
  • Maximum concurrent predownloads appeared to be about 400, versus about 800 with CAPWAP.
  • WLC management interface utilization appeared to hit 2-4 Gbps according to monitoring.
  • APs will auto fallback to CAPWAP if HTTPS is not working for that specific AP or site
  • Some APs failed and required manual reboot.

Command:

show ap image | i 17.9.6

Note: I’m including APs still on the old image 17.9.6 because ones without issue will have 17.15.5.36 (base 17.15.5 AP image) and 17.15.5.201 (APSP applied).

CLI Output: show ap image | i 17.9.6

onf-9k-wlc#show ap image | i 17.9.6
XXX-1AP-6                         17.15.5.36             17.9.6.201                 Fail to clean up      17.15.5.201           0                 0                 CAPWAP
YYY-1AP-2                         17.15.5.36             17.9.6.201                 Fail to clean up      17.15.5.201           0                 0                 CAPWAP
ZZZ-1ap-1                         17.15.5.36             17.9.6.40                  Predownloading        17.15.5.201           0                 0                 CAPWAP
GGG-BAP-3                         17.15.5.36             17.9.6.201                 Invalid tar file      17.15.5.201           574               3                 CAPWAP

Failures observed included:

Fail to clean up
Invalid tar file
APSP predownload using HTTPS


APSP predownload using HTTPS

CLI Output: show ap image

WLC-prod-HA#show ap image
Total number of APs  : ~3000

Number of APs
        Initiated                  : 0
        Downloading                : 0
        Predownloading             : 397
        Completed downloading      : 0
        Completed predownloading   : 2014
        Not Supported              : 0
        Failed to Predownload      : 4
        Predownload in progress    : Yes

AP Name                           Primary Image          Backup Image            Predownload Status   Predownload Version   Method
----------------------------------------------------------------------------------------------------------------------------------
AP-EXAMPLE-001                    17.15.5.36             17.15.5.201             Complete             17.15.5.201           HTTPS
AP-EXAMPLE-002                    17.15.5.36             17.9.6.201              None                 0.0.0.0               N/A
AP-EXAMPLE-003                    17.15.5.36             17.15.5.201             Complete             17.15.5.201           HTTPS


Step 4 – APSP Rolling AP Upgrade

With predownload complete, AP upgrade iterations begin again. APs are not moving between WLCs during this step, so the iterations were slightly faster than the N+1 hitless upgrade. The first iteration took around six minutes.

Command:

show ap upgrade

Note: This output was captured during the APSP rolling AP upgrade. Since APs are not moving between controllers here, iterations complete slightly faster than the N+1 hitless upgrade.

CLI Output: show ap upgrade
WLC-prod-HA#show ap upgrade
Status: In progress
From version: 17.15.5.36
To version: 17.15.5.201

Configured percentage: 25
Percentage complete: 99
Expected time of completion: 06/11/2026 02:17:24 CST

Client steering: Enabled
Client de-authentication: Enabled
Accounting percentage: 70%
Iteration expiry time: 9 minutes

Progress Report
---------------
Iterations
----------
Iteration              Start time                          End time                    AP count
------------------------------------------------------------------------------------------------
0                      06/11/2026 02:11:24 CST             06/11/2026 02:11:24 CST     0
1                      06/11/2026 02:11:24 CST             06/11/2026 02:17:29 CST     745
2                      06/11/2026 02:17:29 CST             06/11/2026 02:23:35 CST     687
3                      06/11/2026 02:23:35 CST             06/11/2026 02:29:41 CST     632
4                      06/11/2026 02:29:41 CST             06/11/2026 02:34:46 CST     558
5                      06/11/2026 02:34:46 CST             06/11/2026 02:40:52 CST     446
6                      06/11/2026 02:40:52 CST             06/11/2026 02:44:57 CST     234
7                      06/11/2026 02:44:57 CST             06/11/2026 02:49:02 CST     41
8                      06/11/2026 02:49:02 CST             ONGOING                     5

Upgraded
--------
Number of APs: ~3000


Step 5 – AP Exceptions

Some APs may not be handled by Rolling AP Upgrade if they do not have the correct backup image. These APs need to be remediated after the main upgrade flow. Most likely you will just need to reboot them.

Command:

show ap upgrade

Note: At the bottom of the output you can see APs that will not be handled by Rolling AP Upgrade. These typically require manual remediation such as an AP reboot.

CLI Output: show ap upgrade
APs not handled by Rolling AP Upgrade
-------------------------------------
AP Name                          Radio MAC               Status          Reason for not handling by Rolling AP Upgrade
----------------------------------------------------------------------------------------------------------------------
AP-EXAMPLE-001                   xxxx.xxxx.x001          Connected       AP does not have the correct backup image
AP-EXAMPLE-002                   xxxx.xxxx.x002          Connected       AP does not have the correct backup image
AP-EXAMPLE-003                   xxxx.xxxx.x003          Connected       AP does not have the correct backup image
AP-EXAMPLE-004                   xxxx.xxxx.x004          Connected       AP does not have the correct backup image
AP-EXAMPLE-005                   xxxx.xxxx.x005          Connected       AP does not have the correct backup image
AP-EXAMPLE-006                   xxxx.xxxx.x006          Connected       AP does not have the correct backup image
AP-EXAMPLE-007                   xxxx.xxxx.x007          Connected       AP does not have the correct backup image
AP-EXAMPLE-008                   xxxx.xxxx.x008          Connected       AP does not have the correct backup image
AP-EXAMPLE-009                   xxxx.xxxx.x009          Connected       AP does not have the correct backup image
AP-EXAMPLE-010                   xxxx.xxxx.x010          Connected       AP does not have the correct backup image
AP-EXAMPLE-011                   xxxx.xxxx.x011          Connected       AP does not have the correct backup image
AP-EXAMPLE-012                   xxxx.xxxx.x012          Connected       AP does not have the correct backup image
AP-EXAMPLE-013                   xxxx.xxxx.x013          Connected       AP does not have the correct backup image
AP-EXAMPLE-014                   xxxx.xxxx.x014          Connected       AP does not have the correct backup image
AP-EXAMPLE-015                   xxxx.xxxx.x015          Connected       AP does not have the correct backup image
AP-EXAMPLE-016                   xxxx.xxxx.x016          Connected       AP does not have the correct backup image


Step 6 – Commit APSP

Make sure the WLC image and APSP are committed and rollback timers are inactive. You do not want the controller to roll itself back later. Look for C, meaning activated and committed, and verify the auto abort timer is inactive.

APSP committed


APSP committed

Command:

show install summary

Note: This was captured after the APSP was committed and activated. This confirms both the base image and APSP are in a committed state and rollback timers are inactive.

CLI Output: show install summary
WLC-prod-HA#show install summary
[ Chassis 1/R0 2/R0 ] Installed Package(s) Information:
State (St): I - Inactive, U - Activated & Uncommitted,
            C - Activated & Committed, D - Deactivated & Uncommitted
--------------------------------------------------------------------------------
Type  St   Filename/Version
--------------------------------------------------------------------------------
IMG   C    17.15.05.0.8370
APSP  C    bootflash:C9800-universalk9_wlc.17.15.05.CSCwt44784.SPA.apsp.bin

--------------------------------------------------------------------------------
Auto abort timer: inactive
--------------------------------------------------------------------------------

What to validate:

  • WLC Image is status ‘C’ for Activated & Committed
  • APSP is status ‘C’ for Activated & Committed
  • Auto abort timer is inactive


Post-Upgrade Tasks

  • Validate AP counts match the pre-upgrade export.
  • For missing APs, shut/no shut the AP uplink switch interface if needed.
  • Remove AP authorization restrictions from other WLCs. If you forget, an AP that reboots later may be unable to rejoin.
  • Confirm all images are committed and rollback timers are inactive.
  • Send all-clear notifications according to change management procedures.


Key Takeaways

  • Test the target code with real client devices before upgrading production.
  • N+1 upgrade lowers risk compared with ISSU. See all the bugs related to ISSU upgrades.
  • Make sure your N+1 AP upgrade configuration matches your primary WLC settings
  • Use one person to operate the GUI while others monitor.
  • CLI commands were more responsive than the GUI in monitoring AP upgrade progress
  • CAPWAP predownload took around 2x longer than HTTPS.
  • Fallback from N+1 back to the upgraded primary was much faster than the original move to N+1.
  • Always remember commit both the base WLC image and APSP.

Leave a Reply

Your email address will not be published. Required fields are marked *