Unable to find release notes - Self Hosted

Hey All,

I have a self hosted instance of Bitwarden. I have it set up that it will check weekly to see if there are any container updates and update them per the documentation provided by Bitwarden.

Last night I got an alert that an update happened. When i check the version i see the following: 2025.12.1+984392c

I am assung that 984392c is perhaps a Github commit ID but i cant find it. I checked release notes and there is nothing mentioning this.

Does anyone have a clue whats in this update? Did any other Self-Hosted installs go through an update as well recently? Would love to hear your feedback.


Where did you get this version number?

Do you have reason to believe that this update is different from Release 2025.12.1?

I get the version when i go to the landing page: https:vault.example.com

I dont know if this release is different then the previous 12.1. That is what im trying to find out. What specifically was updated.

OK, that version number is for the Web Vault client, not for the server, and the 8-digit hex code evidently represents the first 8 digits of the identifier for Commit 984392c1e7207c444b09f277fe558b219eb9d68c, which is the last commit that was made for Release 2025.12.1.

I don’t know why the first 8 digits of the Commit identifier are displayed in the Web Vault version number on your setup, though. On the Bitwarden-hosted server (vault.bitwarden.com), the version number is just shown as “2025.12.1”.

Was your Web Vault version shown as “2025.12.1” prior to last night’s update?

At least in one other recent topic I saw that too (in an Admin Dashboard screenshot). BW might just have changed the view of the web vault version (without any additional “meaning”?).

Unless they have made this change only in the self-hosted version, that wouldn’t explain why I don’t see the Commit ID in the version number for my Web Vault client.

Yes it was. In the effort of transparecy, here is my backup script along with the log file that it creates for me to troubleshoot just in case.

michael@bitwarden:~$ cat /opt/bitwarden/bw_auto_update.sh
#!/bin/bash
set -euo pipefail

BW_DIR="/opt/bitwarden"
LOG="/var/log/bitwarden_update.log"
DATE="$(date '+%Y-%m-%d %H:%M:%S')"

echo "[$DATE] Bitwarden smart-update check started" >> "$LOG"

cd "$BW_DIR"
UPDATE_NEEDED=0

# 1. Update installer & setup container
SELF_OUTPUT=$(su - bitwarden -c "
cd $BW_DIR && \
./bitwarden.sh updateself 2>&1
")
echo "$SELF_OUTPUT" >> "$LOG"

if echo "$SELF_OUTPUT" | grep -qiE 'Updated|Downloading|Pulling'; then
    UPDATE_NEEDED=1
fi

# 2. Update templates/config
su - bitwarden -c "
cd $BW_DIR && \
./bitwarden.sh update >> $LOG 2>&1
"

# 3. Pull images (this is what actually fetches new versions)
PULL_OUTPUT=$(su - bitwarden -c "
cd $BW_DIR && \
./bitwarden.sh pull 2>&1
")
echo "$PULL_OUTPUT" >> "$LOG"

if echo "$PULL_OUTPUT" | grep -qiE 'newer image|Downloaded|Pull complete'; then
    UPDATE_NEEDED=1
fi

# 4. Restart ONLY if something changed
if [ "$UPDATE_NEEDED" -eq 1 ]; then
    echo "[$DATE] Update detected — backing up and restarting" >> "$LOG"

    su - bitwarden -c "
    cd $BW_DIR && \
    ./bitwarden.sh backup >> $LOG 2>&1 && \
    ./bitwarden.sh restart >> $LOG 2>&1
    "

    echo "[$DATE] Update applied successfully" >> "$LOG"
else
    echo "[$DATE] No updates found — skipping restart" >> "$LOG"
fi

echo "----------------------------------------" >> "$LOG"
michael@bitwarden:~$

===================================================

docker compose not found, falling back to docker-compose.
bitwarden.sh version 2025.12.0
Docker version 27.5.1, build 27.5.1-0ubuntu3~22.04.2
docker-compose version 1.29.2, build unknown

docker compose not found, falling back to docker-compose.
Stopping bitwarden-nginx         ...
Stopping bitwarden-admin         ...
Stopping bitwarden-api           ...
Stopping bitwarden-events        ...
Stopping bitwarden-identity      ...
Stopping bitwarden-attachments   ...
Stopping bitwarden-icons         ...
Stopping bitwarden-notifications ...
Stopping bitwarden-sso           ...
Stopping bitwarden-mssql         ...
Stopping bitwarden-web           ...
Stopping bitwarden-attachments   ... done
Stopping bitwarden-notifications ... done
Stopping bitwarden-events        ... done
Stopping bitwarden-icons         ... done
Stopping bitwarden-sso           ... done
Stopping bitwarden-nginx         ... done
Stopping bitwarden-web           ... done
Stopping bitwarden-identity      ... done
Stopping bitwarden-admin         ... done
Stopping bitwarden-api           ... done
Stopping bitwarden-mssql         ... done
Removing bitwarden-nginx         ...
Removing bitwarden-admin         ...
Removing bitwarden-api           ...
Removing bitwarden-events        ...
Removing bitwarden-identity      ...
Removing bitwarden-attachments   ...
Removing bitwarden-icons         ...
Removing bitwarden-notifications ...
Removing bitwarden-sso           ...
Removing bitwarden-mssql         ...
Removing bitwarden-web           ...
Removing bitwarden-nginx         ... done
Removing bitwarden-mssql         ... done
Removing bitwarden-api           ... done
Removing bitwarden-attachments   ... done
Removing bitwarden-admin         ... done
Removing bitwarden-identity      ... done
Removing bitwarden-events        ... done
Removing bitwarden-web           ... done
Removing bitwarden-sso           ... done
Removing bitwarden-notifications ... done
Removing bitwarden-icons         ... done
Removing network docker_default
Removing network docker_public
Pulling web           ...
Pulling events        ...
Pulling sso           ...
Pulling identity      ...
Pulling icons         ...
Pulling attachments   ...
Pulling notifications ...
Pulling api           ...
Pulling mssql         ...
Pulling admin         ...
Pulling nginx         ...
Pulling notifications ... pulling from bitwarden/notificati...
Pulling notifications ... digest: sha256:2aa89964ae75b534ef...
Pulling notifications ... status: image is up to date for g...
Pulling notifications ... done
Pulling icons         ... pulling from bitwarden/icons
Pulling icons         ... digest: sha256:86a40955922e2830f4...
Pulling icons         ... status: image is up to date for g...
Pulling icons         ... done
Pulling mssql         ... pulling from bitwarden/mssql
Pulling mssql         ... digest: sha256:40999115f801a43c64...
Pulling mssql         ... status: image is up to date for g...
Pulling nginx         ... pulling from bitwarden/nginx
Pulling sso           ... pulling from bitwarden/sso
Pulling mssql         ... done
Pulling sso           ... digest: sha256:8c2c9f24fa4799e039...
Pulling sso           ... status: image is up to date for g...
Pulling nginx         ... digest: sha256:f2689d83870e707033...
Pulling nginx         ... status: image is up to date for g...
Pulling sso           ... done
Pulling nginx         ... done
Pulling web           ... pulling from bitwarden/web
Pulling web           ... digest: sha256:7b95bd8653373ba5e4...
Pulling web           ... status: image is up to date for g...
Pulling web           ... done
Pulling events        ... pulling from bitwarden/events
Pulling identity      ... pulling from bitwarden/identity
Pulling admin         ... pulling from bitwarden/admin
Pulling attachments   ... pulling from bitwarden/attachments
Pulling events        ... digest: sha256:368bdc53f2c3320458...
Pulling events        ... status: image is up to date for g...
Pulling admin         ... digest: sha256:f114e58eddb2e1797f...
Pulling admin         ... status: image is up to date for g...
Pulling identity      ... digest: sha256:4024ec7018982712c8...
Pulling identity      ... status: image is up to date for g...
Pulling events        ... done
Pulling admin         ... done
Pulling attachments   ... digest: sha256:bf91831200a4e07bd6...
Pulling attachments   ... status: image is up to date for g...
Pulling identity      ... done
Pulling attachments   ... done
Pulling api           ... pulling from bitwarden/api
Pulling api           ... digest: sha256:36a1d7f1bde615ba83...
Pulling api           ... status: image is up to date for g...
Pulling api           ... done
Creating network "docker_public" with the default driver
Creating network "docker_default" with the default driver
Creating bitwarden-identity ...
Creating bitwarden-web      ...
Creating bitwarden-mssql    ...
Creating bitwarden-events   ...
Creating bitwarden-sso      ...
Creating bitwarden-attachments ...
Creating bitwarden-api         ...
Creating bitwarden-icons       ...
Creating bitwarden-notifications ...
Creating bitwarden-mssql         ... done
Creating bitwarden-admin         ...
Creating bitwarden-attachments   ... done
Creating bitwarden-web           ... done
Creating bitwarden-events        ... done
Creating bitwarden-sso           ... done
Creating bitwarden-identity      ... done
Creating bitwarden-notifications ... done
Creating bitwarden-icons         ... done
Creating bitwarden-api           ... done
Creating bitwarden-admin         ... done
Creating bitwarden-nginx         ...
Creating bitwarden-nginx         ... done
2025.12.0: Pulling from bitwarden/setup
Digest: sha256:3fbdce1dc459b55dc71d3beea63e39522cc7ad350d77c5521f11bad25e64b567
Status: Image is up to date for ghcr.io/bitwarden/setup:2025.12.0
ghcr.io/bitwarden/setup:2025.12.0


Bitwarden is up and running!
===================================================

visit https://vault.xxxxxxx.com
to update, run `./bitwarden.sh updateself` and then `./bitwarden.sh update`

[2025-12-28 03:30:01] Update applied successfully
----------------------------------------
[2026-01-04 03:30:01] Bitwarden smart-update check started
 _     _ _                         _
| |__ (_) |___      ____ _ _ __ __| | ___ _ __
| '_ \| | __\ \ /\ / / _` | '__/ _` |/ _ \ '_ \
| |_) | | |_ \ V  V / (_| | | | (_| |  __/ | | |
|_.__/|_|\__| \_/\_/ \__,_|_|  \__,_|\___|_| |_|

Open source password management solutions
Copyright 2015-2026, Bitwarden, Inc.
https://bitwarden.com, https://github.com/bitwarden

===================================================

docker compose not found, falling back to docker-compose.
bitwarden.sh version 2025.12.1
Docker version 27.5.1, build 27.5.1-0ubuntu3~22.04.2
docker-compose version 1.29.2, build unknown

Updated self.
 _     _ _                         _
| |__ (_) |___      ____ _ _ __ __| | ___ _ __
| '_ \| | __\ \ /\ / / _` | '__/ _` |/ _ \ '_ \
| |_) | | |_ \ V  V / (_| | | | (_| |  __/ | | |
|_.__/|_|\__| \_/\_/ \__,_|_|  \__,_|\___|_| |_|

Open source password management solutions
Copyright 2015-2026, Bitwarden, Inc.
https://bitwarden.com, https://github.com/bitwarden

===================================================

docker compose not found, falling back to docker-compose.
bitwarden.sh version 2025.12.1
Docker version 27.5.1, build 27.5.1-0ubuntu3~22.04.2
docker-compose version 1.29.2, build unknown

docker compose not found, falling back to docker-compose.
Update not needed
 _     _ _                         _
| |__ (_) |___      ____ _ _ __ __| | ___ _ __
| '_ \| | __\ \ /\ / / _` | '__/ _` |/ _ \ '_ \
| |_) | | |_ \ V  V / (_| | | | (_| |  __/ | | |
|_.__/|_|\__| \_/\_/ \__,_|_|  \__,_|\___|_| |_|

Open source password management solutions
Copyright 2015-2026, Bitwarden, Inc.
https://bitwarden.com, https://github.com/bitwarden

===================================================

docker compose not found, falling back to docker-compose.
bitwarden.sh version 2025.12.1
Docker version 27.5.1, build 27.5.1-0ubuntu3~22.04.2
docker-compose version 1.29.2, build unknown

No command found.

Available commands:

install
start
restart
stop
update
updatedb
updaterun
updateself
updateconf
uninstall
renewcert
rebuild
compresslogs
help

See more at https://bitwarden.com/help/article/install-on-premise/#script-commands-reference
[2026-01-04 03:30:01] Update detected — backing up and restarting
 _     _ _                         _
| |__ (_) |___      ____ _ _ __ __| | ___ _ __
| '_ \| | __\ \ /\ / / _` | '__/ _` |/ _ \ '_ \
| |_) | | |_ \ V  V / (_| | | | (_| |  __/ | | |
|_.__/|_|\__| \_/\_/ \__,_|_|  \__,_|\___|_| |_|

Open source password management solutions
Copyright 2015-2026, Bitwarden, Inc.
https://bitwarden.com, https://github.com/bitwarden

===================================================

docker compose not found, falling back to docker-compose.
bitwarden.sh version 2025.12.1
Docker version 27.5.1, build 27.5.1-0ubuntu3~22.04.2
docker-compose version 1.29.2, build unknown

No command found.

Available commands:

install
start
restart
stop
update
updatedb
updaterun
updateself
updateconf
uninstall
renewcert
rebuild
compresslogs
help

See more at https://bitwarden.com/help/article/install-on-premise/#script-commands-reference

 _     _ _                         _
| |__ (_) |___      ____ _ _ __ __| | ___ _ __
| '_ \| | __\ \ /\ / / _` | '__/ _` |/ _ \ '_ \
| |_) | | |_ \ V  V / (_| | | | (_| |  __/ | | |
|_.__/|_|\__| \_/\_/ \__,_|_|  \__,_|\___|_| |_|

Open source password management solutions
Copyright 2015-2026, Bitwarden, Inc.
https://bitwarden.com, https://github.com/bitwarden

===================================================

docker compose not found, falling back to docker-compose.
bitwarden.sh version 2025.12.1
Docker version 27.5.1, build 27.5.1-0ubuntu3~22.04.2
docker-compose version 1.29.2, build unknown

docker compose not found, falling back to docker-compose.
Stopping bitwarden-nginx         ...
Stopping bitwarden-admin         ...
Stopping bitwarden-sso           ...
Stopping bitwarden-web           ...
Stopping bitwarden-api           ...
Stopping bitwarden-icons         ...
Stopping bitwarden-events        ...
Stopping bitwarden-mssql         ...
Stopping bitwarden-attachments   ...
Stopping bitwarden-notifications ...
Stopping bitwarden-identity      ...
Stopping bitwarden-attachments   ... done
Stopping bitwarden-sso           ... done
Stopping bitwarden-notifications ... done
Stopping bitwarden-events        ... done
Stopping bitwarden-icons         ... done
Stopping bitwarden-nginx         ... done
Stopping bitwarden-identity      ... done
Stopping bitwarden-api           ... done
Stopping bitwarden-web           ... done
Stopping bitwarden-admin         ... done
Stopping bitwarden-mssql         ... done
Removing bitwarden-nginx         ...
Removing bitwarden-admin         ...
Removing bitwarden-sso           ...
Removing bitwarden-web           ...
Removing bitwarden-api           ...
Removing bitwarden-icons         ...
Removing bitwarden-events        ...
Removing bitwarden-mssql         ...
Removing bitwarden-attachments   ...
Removing bitwarden-notifications ...
Removing bitwarden-identity      ...
Removing bitwarden-attachments   ... done
Removing bitwarden-nginx         ... done
Removing bitwarden-mssql         ... done
Removing bitwarden-events        ... done
Removing bitwarden-icons         ... done
Removing bitwarden-sso           ... done
Removing bitwarden-api           ... done
Removing bitwarden-identity      ... done
Removing bitwarden-notifications ... done
Removing bitwarden-web           ... done
Removing bitwarden-admin         ... done
Removing network docker_public
Removing network docker_default
Pulling events        ...
Pulling mssql         ...
Pulling attachments   ...
Pulling notifications ...
Pulling admin         ...
Pulling api           ...
Pulling icons         ...
Pulling web           ...
Pulling sso           ...
Pulling identity      ...
Pulling nginx         ...
Pulling sso           ... pulling from bitwarden/sso
Pulling events        ... pulling from bitwarden/events
Pulling identity      ... pulling from bitwarden/identity
Pulling icons         ... pulling from bitwarden/icons
Pulling notifications ... pulling from bitwarden/notificati...
Pulling sso           ... digest: sha256:bb41795d3a03d772ef...
Pulling sso           ... status: image is up to date for g...
Pulling events        ... digest: sha256:6b3bd398c28a5b378c...
Pulling events        ... status: image is up to date for g...
Pulling notifications ... digest: sha256:71416ef461c9bcda0d...
Pulling notifications ... status: image is up to date for g...
Pulling identity      ... digest: sha256:00f99b9416a3f6c9b0...
Pulling identity      ... status: image is up to date for g...
Pulling sso           ... done
Pulling icons         ... digest: sha256:56ccb211bd4da03ecb...
Pulling icons         ... status: image is up to date for g...
Pulling events        ... done
Pulling notifications ... done
Pulling identity      ... done
Pulling icons         ... done
Pulling nginx         ... pulling from bitwarden/nginx
Pulling attachments   ... pulling from bitwarden/attachments
Pulling api           ... pulling from bitwarden/api
Pulling mssql         ... pulling from bitwarden/mssql
Pulling attachments   ... digest: sha256:244a6637c6870e5b24...
Pulling attachments   ... status: image is up to date for g...
Pulling admin         ... pulling from bitwarden/admin
Pulling nginx         ... digest: sha256:08d45f47f46e75dd00...
Pulling nginx         ... status: image is up to date for g...
Pulling api           ... digest: sha256:81d845e4e05f5f4a2a...
Pulling api           ... status: image is up to date for g...
Pulling attachments   ... done
Pulling nginx         ... done
Pulling mssql         ... digest: sha256:2402aea4c643da0f32...
Pulling mssql         ... status: image is up to date for g...
Pulling api           ... done
Pulling admin         ... digest: sha256:0a87212dc9ff96034a...
Pulling admin         ... status: image is up to date for g...
Pulling mssql         ... done
Pulling admin         ... done
Pulling web           ... pulling from bitwarden/web
Pulling web           ... digest: sha256:5bdc22156c1f003cf2...
Pulling web           ... status: image is up to date for g...
Pulling web           ... done
Creating network "docker_public" with the default driver
Creating network "docker_default" with the default driver
Creating bitwarden-events ...
Creating bitwarden-sso    ...
Creating bitwarden-web    ...
Creating bitwarden-mssql  ...
Creating bitwarden-icons  ...
Creating bitwarden-identity ...
Creating bitwarden-api      ...
Creating bitwarden-notifications ...
Creating bitwarden-attachments   ...
Creating bitwarden-attachments   ... done
Creating bitwarden-web           ... done
Creating bitwarden-mssql         ... done
Creating bitwarden-admin         ...
Creating bitwarden-events        ... done
Creating bitwarden-api           ... done
Creating bitwarden-identity      ... done
Creating bitwarden-icons         ... done
Creating bitwarden-sso           ... done
Creating bitwarden-notifications ... done
Creating bitwarden-admin         ... done
Creating bitwarden-nginx         ...
Creating bitwarden-nginx         ... done
2025.12.1: Pulling from bitwarden/setup
Digest: sha256:b7ddcc14b6b61af3144c2b8585877de03a385915a22042d42357c2cf3ef0fcc4
Status: Image is up to date for ghcr.io/bitwarden/setup:2025.12.1
ghcr.io/bitwarden/setup:2025.12.1


Bitwarden is up and running!
===================================================

visit https://vault.xxxxxx.com
to update, run `./bitwarden.sh updateself` and then `./bitwarden.sh update`

[2026-01-04 03:30:01] Update applied successfully
----------------------------------------
michael@bitwarden:/var/log$

I haven’t performed an exhaustive dissection of the files you posted, but on first glance, it seems that the log file simply shows an update to Server version 2025.12.0 on Dec. 28, and then an update to Server version 2025.12.1 on Jan. 4.

I don’t see any evidence that the Web app client (which is bundled with the Server) changed its displayed version number from “2025.12.1” to “2025.12.1+984392c”.

Understood. There is no rhyme or reason why the commit ID is in the web view. I can always restart the containers. I will dig around a bit but thank you for your quick responses everyone.

… I think you both already saw that it also is shown “at” the last regular release itself:

?!

PS: … I just remembered something… that’s how a current copy of “About → Version” looks like on the (my) Android app:

© Bitwarden Inc. 2015-2026

Version: 2025.12.0 (21003)
:mobile_phone: Fairphone FP5 :robot: 15@35 :package: prod
:brick: commit: bitwarden/android/release/2025.12-rc40@f02b374e989600a8458d2884abd2526244241c8a
:laptop: build source: bitwarden/android/actions/runs/19830126705/attempts/1
:crab: SDK: 1.0.0-3928-2cca3d46
:cloud_with_lightning: Server: 2025.12.1 @ EU

Indeed, I wondered a few weeks/months ago about the addition of the “commit”…

(Release Password Manager 2025.12.0 (21003) · bitwarden/android · GitHub)

… however, there seems to be a pattern to add the (last) commits to the releases… and maybe it has something to do with the fact that you can install artifacts of a “same” version in some cases… (to make that distinguishable)

After reviewing the code, I believe that the version string is extracted from the package.json file, although it’s unclear to me whether this happens at runtime, or already when the client code is downloaded (the source code I was able to examine via the DevTools seems to have the version hardcoded in a .js file, but the source code uses an environment variable that traces back to the package.json file). If you can find a package.json file on your server, perhaps examining its contents this could shed a little light on the situation.

I also have the self-hosted install. And after upgrading BW today. I also see 2025.12.1+984392c. when logging in and in website/admin.

Appears that there are no issues besides exclamation / danger icon in admin panel.

2 Likes