# Upgrade from 4.x to 5.x, do we need to stage first?

**URL:** <https://forum.communityhealthtoolkit.org/t/upgrade-from-4-x-to-5-x-do-we-need-to-stage-first/5533>\
**Category:** Technical Support\
**Created:** [March 10, 2026, 3:54pm UTC](https://forum.communityhealthtoolkit.org/t/upgrade-from-4-x-to-5-x-do-we-need-to-stage-first/5533 "2026-03-10T15:54:18Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![yuv](https://communityhealthtoolkit.b-cdn.net/user_avatar/forum.communityhealthtoolkit.org/yuv/32/320_2.png) [@yuv](https://forum.communityhealthtoolkit.org/u/yuv)\
**Post date:** [March 10, 2026, 3:54pm UTC](https://forum.communityhealthtoolkit.org/t/upgrade-from-4-x-to-5-x-do-we-need-to-stage-first/5533/1 "2026-03-10T15:54:18Z")

</div>

[Preparing for 5.0](https://docs.communityhealthtoolkit.org/hosting/cht/migration/preparing-for-5/) document outlines the following information.

> Deployments should only use the “Stage” button when upgrading from 4.x to 5.x in Kubernetes. Once staging completes, it is safe to upgrade through helm upgrade!

This got me confused, if this is necessary (to stage before running 5.x upgrade) or not. What happens if I take my instance down without staging and initiate 5.x upgrade? Does that upgrade path also work?

---

<div class="post-metadata">

**Author:** ![mrjones](https://communityhealthtoolkit.b-cdn.net/user_avatar/forum.communityhealthtoolkit.org/mrjones/32/681_2.png) [@mrjones](https://forum.communityhealthtoolkit.org/u/mrjones)\
**Post date:** [March 10, 2026, 4:11pm UTC](https://forum.communityhealthtoolkit.org/t/upgrade-from-4-x-to-5-x-do-we-need-to-stage-first/5533/2 "2026-03-10T16:11:25Z")

</div>

Hi @yuv - thanks for the question!

> This got me confused, if this is necessary (to stage before running 5.x upgrade) or not.

As with any CHT upgrade, it is not required to stage before upgrading.

> What happens if I take my instance down without staging and initiate 5.x upgrade? Does that upgrade path also work?

What happens, again as with any CHT upgrade you don’t stage, is that the upgrade will take a very long time, as it will first stage all views and then do the upgrade. So, while possible, it’s best to stage first, then upgrade.

The main issue here is that in 4.x both the “Stage” and “Upgrade” buttons are available to a Kubernetes deployment to upgrade to 5.1. So, while a Kubernetes deployment can not click “Stage” as you asked above, if a Kubernetes instance clicks the “Upgrade” button, it will do the upgrade but CHT will not have Nouveau running. CHT will be in a broken state at this point (sync and online search will be broken) and the fix will be to [upgrade the helm chart](https://docs.communityhealthtoolkit.org/hosting/cht/migration/helm-charts-4x-to-5x-migration/) and deploy it so Nouveau is installed and the CHT instance will resume working correctly.

---

<div class="post-metadata">

**Author:** ![yuv](https://communityhealthtoolkit.b-cdn.net/user_avatar/forum.communityhealthtoolkit.org/yuv/32/320_2.png) [@yuv](https://forum.communityhealthtoolkit.org/u/yuv)\
**Post date:** [March 10, 2026, 6:30pm UTC](https://forum.communityhealthtoolkit.org/t/upgrade-from-4-x-to-5-x-do-we-need-to-stage-first/5533/3 "2026-03-10T18:30:01Z")

</div>

Hi @mrjones ,  
Thanks for your response. While staging on 4.22.0 from the backend, it throws an error `Error triggering update` and following message is in the console.

`expected version 5.1.0.22454960592 does not match current version 4.22.0.18399126672`

However, in `/_utils` at fauxton, the tasks appear to be running.

---

<div class="post-metadata">

**Author:** ![mrjones](https://communityhealthtoolkit.b-cdn.net/user_avatar/forum.communityhealthtoolkit.org/mrjones/32/681_2.png) [@mrjones](https://forum.communityhealthtoolkit.org/u/mrjones)\
**Post date:** [March 10, 2026, 11:27pm UTC](https://forum.communityhealthtoolkit.org/t/upgrade-from-4-x-to-5-x-do-we-need-to-stage-first/5533/4 "2026-03-10T23:27:42Z")

</div>

Gotcha - thanks for the update @yuv .

As you work though any bumps in the upgrade process, feel free to add some notes to the [helm chart upgrade](https://docs.communityhealthtoolkit.org/hosting/cht/migration/helm-charts-4x-to-5x-migration/) instructions which might help the next deployment trying to upgrade.

Thanks!

---

<div class="post-metadata">

**Author:** ![yuv](https://communityhealthtoolkit.b-cdn.net/user_avatar/forum.communityhealthtoolkit.org/yuv/32/320_2.png) [@yuv](https://forum.communityhealthtoolkit.org/u/yuv)\
**Post date:** [March 12, 2026, 2:00am UTC](https://forum.communityhealthtoolkit.org/t/upgrade-from-4-x-to-5-x-do-we-need-to-stage-first/5533/5 "2026-03-12T02:00:39Z")

</div>

In our instance, multiple search\_indexer ran for many hours and did no complete. So, I restarted the upgrade from the very beginning again. However, I am seeing that a search\_indexer is not updated again.

| type | database | stared\_on | updated\_on | node | pid | status |
| --- | --- | --- | --- | --- | --- | --- |
| search\_indexer | shards/20000000-3fffffff/medic.1634011221 | Mar 11th, 8:08:47 pm an hour ago | Mar 11th, 8:09:18 pm an hour ago | couchdb@couchdb-2.xxx-prod.svc.cluster.local | 0.210907.0 | Progress: 0% 2025 Changes done. |

How do I see what’s causing an upgrade to stuck here. How does it progress ahead? I suspect restarting pods may work, but is there a way to check why it’s stuck and a way to avoid it ?

---

<div class="post-metadata">

**Author:** ![mrjones](https://communityhealthtoolkit.b-cdn.net/user_avatar/forum.communityhealthtoolkit.org/mrjones/32/681_2.png) [@mrjones](https://forum.communityhealthtoolkit.org/u/mrjones)\
**Post date:** [March 12, 2026, 6:49pm UTC](https://forum.communityhealthtoolkit.org/t/upgrade-from-4-x-to-5-x-do-we-need-to-stage-first/5533/6 "2026-03-12T18:49:14Z")

</div>

For sure restarting pods is suggested for 4.x → 5.x upgrades (effectively the [restart advice](https://docs.communityhealthtoolkit.org/hosting/cht/upgrade-troubleshooting/#a-go-to-fix-restart) on the troubleshoot page).

Do the CouchDB logs for the pod or service show anything interesting?

Hitting up @diana or @twier who might have ideas as well 🤔

---

<div class="post-metadata">

**Author:** ![yuv](https://communityhealthtoolkit.b-cdn.net/user_avatar/forum.communityhealthtoolkit.org/yuv/32/320_2.png) [@yuv](https://forum.communityhealthtoolkit.org/u/yuv)\
**Post date:** [March 30, 2026, 4:34pm UTC](https://forum.communityhealthtoolkit.org/t/upgrade-from-4-x-to-5-x-do-we-need-to-stage-first/5533/7 "2026-03-30T16:34:11Z")

</div>

> While staging on 4.22.0 from the backend, it throws an error `Error triggering update` and following message is in the console.  
> expected version 5.1.0.22454960592 does not match current version 4.22.0.18399126672

As I am working on multiple instance upgrade, this error is shown usually for larger instances where staging takes long time. But as mentioned earlier, `_utils/#/activetasks` will show staging tasks actually running. So, it’s advised for anyone seeing this error on console to check the active tasks on Fauxton.

As far as staging is concerned, this is advised as this reduced the overall downtime during upgrade. But ensure that you have [enough space](https://docs.communityhealthtoolkit.org/hosting/cht/migration/preparing-for-5/#additional-disk-storage-required-for-upgrading) on the disk before staging.
