# DHIS2 Upgrade: version by version vs skipping versions

**URL:** <https://community.dhis2.org/t/dhis2-upgrade-version-by-version-vs-skipping-versions/77012>\
**Category:** Support - Assistance technique\
**Tags:** server-admin\
**Created:** [22 September 2026 10:14 UTC](https://community.dhis2.org/t/dhis2-upgrade-version-by-version-vs-skipping-versions/77012 "2026-09-22T10:14:45Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![HawraaSweidan](https://dhis2.b-cdn.net/user_avatar/community.dhis2.org/hawraasweidan/32/47578_2.png) [@HawraaSweidan](https://community.dhis2.org/u/HawraaSweidan)\
**Post date:** [22 September 2026 10:14 UTC](https://community.dhis2.org/t/dhis2-upgrade-version-by-version-vs-skipping-versions/77012/1 "2026-09-22T10:14:45Z")

</div>

Greetings,

Would it be possible to upgrade my DHIS2 version directly from 2.39 to 2.42, without upgrading step by step?

cc:  
@Markus @Gassim

---

<div class="post-metadata">

**Author:** ![Gassim](https://dhis2.b-cdn.net/user_avatar/community.dhis2.org/gassim/32/35347_2.png) [@Gassim](https://community.dhis2.org/u/Gassim)\
**Post date:** [22 September 2026 20:39 UTC](https://community.dhis2.org/t/dhis2-upgrade-version-by-version-vs-skipping-versions/77012/2 "2026-09-22T20:39:57Z")

</div>

Hi @HawraaSweidan

Welcome back to the CoP! 🙂

Your question has been addressed by @tkipkurgat here: [Issues Upgrading From 2.38 to 2.42 - #6 by tkipkurgat](https://community.dhis2.org/t/issues-upgrading-from-2-38-to-2-42/64281/6)

I actually think it might be a good idea to merge the topics, but please see the solution and reply here if you have further questions. Thanks!

---

<div class="post-metadata">

**Author:** ![HawraaSweidan](https://dhis2.b-cdn.net/user_avatar/community.dhis2.org/hawraasweidan/32/47578_2.png) [@HawraaSweidan](https://community.dhis2.org/u/HawraaSweidan)\
**Post date:** [23 September 2026 07:30 UTC](https://community.dhis2.org/t/dhis2-upgrade-version-by-version-vs-skipping-versions/77012/3 "2026-09-23T07:30:51Z")

</div>

We will be installing the compatible versions of Java, Postgres and Tomcat. But is it a healthy way of upgrading DIHS2? Or it would be better moving 2.40. 2.41 and then 2.42?

---

<div class="post-metadata">

**Author:** ![HawraaSweidan](https://dhis2.b-cdn.net/user_avatar/community.dhis2.org/hawraasweidan/32/47578_2.png) [@HawraaSweidan](https://community.dhis2.org/u/HawraaSweidan)\
**Post date:** [24 September 2026 08:21 UTC](https://community.dhis2.org/t/dhis2-upgrade-version-by-version-vs-skipping-versions/77012/4 "2026-09-24T08:21:41Z")

</div>

We use Windows for DHIS2 hosting and not Ubuntu.

@Gassim @Markus @Tahir_Zaman

---

<div class="post-metadata">

**Author:** ![Gassim](https://dhis2.b-cdn.net/user_avatar/community.dhis2.org/gassim/32/35347_2.png) [@Gassim](https://community.dhis2.org/u/Gassim)\
**Post date:** [24 September 2026 19:07 UTC](https://community.dhis2.org/t/dhis2-upgrade-version-by-version-vs-skipping-versions/77012/5 "2026-09-24T19:07:36Z")

</div>

Hi @HawraaSweidan

I asked @tkipkurgat this question today during [the server admin meetup call](https://community.dhis2.org/t/server-admin-meetup-apache-doris-benchmarking-tomcat-9-to-10-upgrade-considerations/77053/1) and it was within the context of LXC containers and the auto-upgrade script; however, I think the answer applies even if you are on Windows.

Here are the main points that I can recall:

1. While Flyway script is designed to manage the upgrades so that you don’t need to upgrade from version to version, if you decide to use the “jump upgrade” make sure to first test in a testing environment.
2. In the testing environment after the upgrade, please check that there was no data loss, all apps are updated and work well, and that the performance is not worsened.
3. He would still **recommend going through the upgrade version by version**
4. In all cases, the back up is a must. In the meetup, we discussed that backup of the database itself is not enough because some instances also make use of logs (such as Glowroot) and files which in the case of ‘containerized’ setups, if the container is removed all those files and logs are lost.

When upgrading version by version, please remember to check the upgrade notes in the #release to ensure that if there are any scripts that should run before upgrading or any prerequisites are met before.

I hope this helps! If there is anything that’s not clear enough please share your questions. 🙏

---

<div class="post-metadata">

**Author:** ![HawraaSweidan](https://dhis2.b-cdn.net/user_avatar/community.dhis2.org/hawraasweidan/32/47578_2.png) [@HawraaSweidan](https://community.dhis2.org/u/HawraaSweidan)\
**Post date:** [25 September 2026 08:00 UTC](https://community.dhis2.org/t/dhis2-upgrade-version-by-version-vs-skipping-versions/77012/6 "2026-09-25T08:00:44Z")

</div>

Thanks @Gassim

I am currently testing an upgrade of our DHIS2 instance from 2.39.2 to 2.42.6 and encountered an issue with the **Capture app** after reaching 2.42 and even 2.41.

Because the direct upgrade initially encountered migration issues, I performed the upgrade sequentially:

2.39.2 → 2.40.12 → 2.41.10 → 2.42.6

The database migrations completed successfully at each stage. I also compared key Tracker record counts between 2.41 and 2.42, and they remained identical:

The DHIS2 platform itself starts successfully and the database migration completes successfully. However, when opening **Capture** , the application fails immediately with:

```auto
The application could not be loaded.
Please see log for details.

```

The browser console reports:  
index-hEOab-Zb.js:401

The console also shows:

```auto

```

```auto
GET /api/42/dataStore/capture/ruleEngine 404
Using kotlin rule engine

```

The DataStore request returns:  
{  
“httpStatus”: “Not Found”,  
“httpStatusCode”: 404,  
“status”: “ERROR”,  
“message”: “Namespace not found: ‘capture’”,  
“errorCode”: “E1005”  
}  
From previous Community discussions, I understand that the missing `capture/ruleEngine` DataStore namespace may simply result in Capture using the Kotlin rule engine, so I am not sure whether this 404 is related to the actual failure.

I have already tried clearing/reloading the DHIS2 application cache and testing in a private/incognito browser session, but the same error remains.

I also performed several metadata/database checks. So far I have found:

- No orphaned `program_attributes` references to tracked entity attributes.
- No Program Rules with missing programs.
- Program Rule Variables using `TEI_ATTRIBUTE` have valid `trackedEntityAttributeId` references.
- Program Rule Actions targeting tracked entity attributes have valid attribute references.
- The `/api/42/programs` metadata used by Capture did not contain missing `trackedEntityAttribute` or data element IDs in the program/program-stage structures that I checked.
- All tracked entity attributes have non-null sharing configuration.
- The error occurs when opening Capture itself, before I can select a program or organisation unit.

As an additional test, I rolled the staging environment back to the **2.41.10 checkpoint**. DHIS2 starts successfully on 2.41.10, although we have some issues with the newer Capture app there as well; **Tracker Capture remains usable on 2.41.10**.

At this stage, I have therefore kept the operational staging environment on **2.41.10** while investigating the 2.42 Capture problem.

Has anyone encountered the following error after upgrading to 2.42?

---

<div class="post-metadata">

**Author:** ![Gassim](https://dhis2.b-cdn.net/user_avatar/community.dhis2.org/gassim/32/35347_2.png) [@Gassim](https://community.dhis2.org/u/Gassim)\
**Post date:** [28 September 2026 19:21 UTC](https://community.dhis2.org/t/dhis2-upgrade-version-by-version-vs-skipping-versions/77012/7 "2026-09-28T19:21:01Z")

</div>

May I ask a quick question please, after the upgrade did you ‘update’ all the apps in the App Management app, specifically the Capture app, Maps app, Dashboard app, Data Visualizer app?

Please try to update the apps then in the Data Administrator app \> Maintenance use the ‘clear application cache & reload apps’ options. After that please try to test in your browser’s Guest mode to ensure it’s not a cache issue.

If it doesn’t work please let me know.. 🙏

`-----`  
Hi again @HawraaSweidan  
I’m wondering if updating the apps helped? Thank you!

Thanks!
