NginxProxyManager / NginxProxyManager/nginx-proxy-manager

Login Failure/Empty UI After Upgrade Due to Failed Database Version Check

Open
#4,845 25 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug stale
Dominant language
TypeScript
Stars
34.2k
Forks
3.9k
Avg merge
21h 12m
Merged PRs (30d)
20

Description

  1. Summary of Issue
    After upgrading Nginx Proxy Manager (NPM) from a stable version (e.g., 2.12.3) to any newer version (including :latest, which was 2.13.1 at the time of testing), the backend fails to recognize the existing database schema.

This prevents successful database migration and results in two immediate problems:

Login Fails with correct, existing credentials.

The application displays the new UI but an empty dashboard (no Proxy Hosts are visible).

  1. Environment Details
    Operating System: Debian (Headless)

Container Management: Docker / Docker Compose / Dockge

Database: SQLite (Default, located in /data/database.sqlite)

Working Version (Before Breakage): jc21/nginx-proxy-manager:2.12.3

Failing Version(s) Tested: :latest (at time of testing, was likely 2.13.1)

  1. Steps to Reproduce
    Start NPM container using version 2.12.3 with a pre-existing /data volume (containing proxy hosts and users).

Log in successfully and verify configurations.

Stop the container.

Update the docker-compose.yml image tag from 2.12.3 to :latest.

Run docker compose up -d (Triggers the upgrade and database check).

Access the UI and attempt to log in. (Login Fails).

  1. Critical Log Snippet & Root Cause
    The container logs during the failed startup reveal that the migration process is skipped due to an unknown database version:

[11/5/2025] [8:30:15 AM] [Global ] › ℹ info Using Sqlite: /data/database.sqlite
[11/5/2025] [8:30:15 AM] [Migrate ] › ℹ info Current database version: none
This indicates the new application logic fails to read the version information from the existing SQLite file, treating the configured database as a new, uninitialized one and preventing necessary schema migration scripts from running.

  1. Temporary Workaround
    The issue is fully resolvable by reverting the image tag back to jc21/nginx-proxy-manager:2.12.3 and restarting the container with the existing /data volume. This proves the data itself is fine, but the newer application code is incompatible with the version check.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the upgrade from 2.12.3 with the existing /data volume and inspect the database version-check and migration startup path referenced by the logs. The fix is complete when the existing SQLite database is recognized, migrations run, login succeeds, and proxy hosts reappear after upgrading.

Written by the indexing model from the issue text.

Assessment

Tech stack
docker, docker-compose, sqlite, typescript
Domain
backend, databases, devops
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.