Update was not as expected – Updated beyond release version

I’ve recently built a libreNMS install to replace our Zabbix system. My initial install was version 26.2.0-dev.35+437af913a and I disabled automatic updates in the Web UI Update menu:

Enable update in .daily.sh set to OFF

Update Channel set to Monthly

I prefer to read release notes and install updates after they have been in the wild for a period of time vs. background auto updating. Especially with a product new to us.

I’ve been learning the system, installed my hosts and I’m nearing official deployment in our environment. I’ve been waiting for a new release in order to test and familiarize myself with updating libreNMS. I saw that in the past few days 26.3.0 and 26.3.1 have been released, I’m assuming these are on a stable branch?

I referenced docs “Updating and Install” ( https://docs.librenms.org/General/Updating ). Instructions for a ‘manual update’ are to run ./daily.sh on console. I did this, but no update applied. Daily.log only has repeated, non-time stamped entries with no-references to any errors and only reference that might be related to updating is INFO Nothing to migrate.

So I tried the ‘Advanced users’ method in the document which did update my install to:

Version 26.4.1-dev.12+c50d9f387 - Wed Mar 18 2026 22:52:19 GMT-0400
Database Schema 2026_03_05_112733_ospfv3_instances_nullable (376)

As you can see, it updated beyond the 26.3.1 (Stable?) release.

Thus, my question to the community is, how can users update manually on the stable branch?

For sure, I used the ‘Advanced users’ procedure because the daily.sh would not work, but the ‘Advanced users’ doc section does not mention anything about those options installing a development branch or anything?

I appreciate any insights or help.

Honestly, the easiest and safest way is:

lnms config:set update 1
./daily.sh
lnms config:get update 0

Otherwise it’s:

git remote update
git checkout <version>
./scripts/composer_wrapper.php install --no-dev
php artisan migrate

Then run ./validate.php and make sure everything is ok.

I’ll give the first option a try when the stable release is above 26.4.1, and have the git method if unsuccessful. Thanks for the response!

When you set up a version that is newer than the latest stable release and switch to the stable release train, we don’t try to downgrade your install as that can break. Instead it waits for the next stable release and then upgrades to that.

Yes, it is a bit confusing that the daily release is the default. If you want to manually control updates, you should follow @laf 's advice.

Full docs: Updating - LibreNMS Docs

I had picked up in my learning process that downgrading is definitely not recommended and dangerous, thus my plan to wait until a post 2.4.1 “stable” is released.

Yes, it is a bit confusing that the daily release is the default. If you want to manually control updates, you should follow @laf 's advice.

Perhaps one of you can confirm it for me, because the documentation only talks about updating, not WHAT updates are applied.

You said the default daily update ( if lnms config:set update 1 ) is the “daily release”, I assume that means whatever is in the present development repository? Ie, contributor A added something, the next day contributer B fixed something, etc…

I know now that if I use the “Advanced users” command sequence from the Update doc page like I did this morning, I got a version undocumented in the Changelog, so clearly that method pulls from the dev repo.

So, if I want to only update in reference to a Changelog version (where I could assess changes and lookout for issues with certain behaviors) the method would be? as Iaf kindly posted:

git remote update
git checkout 26.3.1
./scripts/composer_wrapper.php install –no-dev
php artisan migrate

Or am I looking for something that just isn’t implemented for the libreNMS project, that being the conventional structure of stable release vs. a development/beta releases.

If you’re on the monthly release then we produce a changelog with it, that’s documented in lots of places.

Daily doesn’t have that, you need to keep an eye on GitHub for the changes we make.