Skip to content

Fresh install gives Server could not be contacted because of old pgadmin4.db #9976

@cschot

Description

@cschot

Describe the bug
After a fresh install it tool a long time for pgadmin to try to start. Than I got the infamous Server could not be contacted error.
I read this could be because of old files in the Appdata folder.
So I checked %appdata%\pgAdmin. (Note that this is not the pgadmin4 folder)
There was an old pgadmin4.db file from 2019.
When I deleted that, the app could be started.

Error messages
In the GUI: Server could not be contacted

In the log file(whole file below):
ERROR pgadmin: Database migration failed
(....)
sqlalchemy.exc.NoSuchTableError: user_old

Expected behavior
I expect 4 changes:

  1. A successful database migration for old databases
  2. An error message in the GUI that makes sense
    • Server could not be contacted -> Database migration failed
  3. Easier troubleshooting
    • A link in the fatal error gui to the logs
    • Report the database path in the logs
    • A link in the fata error gui to a troubleshooting webpage with common error fixes
  4. Easier bug reporting
    • A button in the fatal error gui to create an github issue with

Desktop (please complete the following information):

  • OS: Windows 11 26100.8246
  • pgAdmin version: 9.15
  • Mode: Desktop

Additional context

Log
2026-05-24 16:45:32,290: ERROR	pgadmin:	Database migration failed
2026-05-24 16:45:32,313: ERROR	pgadmin:	Traceback (most recent call last):
  File "D:\Program Files\pgAdmin 4\web\pgadmin\__init__.py", line 390, in upgrade_db
    db_upgrade(app)
    ~~~~~~~~~~^^^^^
  File "D:\Program Files\pgAdmin 4\web\pgadmin\setup\db_upgrade.py", line 25, in db_upgrade
    flask_migrate.upgrade(migration_folder)
    ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^
  File "D:\Program Files\pgAdmin 4\python\Lib\site-packages\flask_migrate\__init__.py", line 111, in wrapped
    f(*args, **kwargs)
    ~^^^^^^^^^^^^^^^^^
  File "D:\Program Files\pgAdmin 4\python\Lib\site-packages\flask_migrate\__init__.py", line 200, in upgrade
    command.upgrade(config, revision, sql=sql, tag=tag)
    ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "D:\Program Files\pgAdmin 4\python\Lib\site-packages\alembic\command.py", line 483, in upgrade
    script.run_env()
    ~~~~~~~~~~~~~~^^
  File "D:\Program Files\pgAdmin 4\python\Lib\site-packages\alembic\script\base.py", line 545, in run_env
    util.load_python_file(self.dir, "env.py")
    ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^
  File "D:\Program Files\pgAdmin 4\python\Lib\site-packages\alembic\util\pyfiles.py", line 116, in load_python_file
    module = load_module_py(module_id, path)
  File "D:\Program Files\pgAdmin 4\python\Lib\site-packages\alembic\util\pyfiles.py", line 136, in load_module_py
    spec.loader.exec_module(module)  # type: ignore
    ~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^
  File "", line 1023, in exec_module
  File "", line 488, in _call_with_frames_removed
  File "D:\Program Files\pgAdmin 4\web\pgadmin\setup\..\..\migrations\env.py", line 95, in 
    run_migrations_online()
    ~~~~~~~~~~~~~~~~~~~~~^^
  File "D:\Program Files\pgAdmin 4\web\pgadmin\setup\..\..\migrations\env.py", line 87, in run_migrations_online
    context.run_migrations()
    ~~~~~~~~~~~~~~~~~~~~~~^^
  File "", line 8, in run_migrations
  File "D:\Program Files\pgAdmin 4\python\Lib\site-packages\alembic\runtime\environment.py", line 969, in run_migrations
    self.get_context().run_migrations(**kw)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^
  File "D:\Program Files\pgAdmin 4\python\Lib\site-packages\alembic\runtime\migration.py", line 626, in run_migrations
    step.migration_fn(**kw)
    ~~~~~~~~~~~~~~~~~^^^^^^
  File "D:\Program Files\pgAdmin 4\web\migrations\versions\aff1436e3c8c_.py", line 32, in upgrade
    meta.reflect(op.get_bind(), only=('server',))
    ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "D:\Program Files\pgAdmin 4\python\Lib\site-packages\sqlalchemy\sql\schema.py", line 5903, in reflect
    Table(name, self, **reflect_opts)
    ~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "", line 2, in __new__
  File "D:\Program Files\pgAdmin 4\python\Lib\site-packages\sqlalchemy\util\deprecations.py", line 281, in warned
    return fn(*args, **kwargs)  # type: ignore[no-any-return]
  File "D:\Program Files\pgAdmin 4\python\Lib\site-packages\sqlalchemy\sql\schema.py", line 429, in __new__
    return cls._new(*args, **kw)
           ~~~~~~~~^^^^^^^^^^^^^
  File "D:\Program Files\pgAdmin 4\python\Lib\site-packages\sqlalchemy\sql\schema.py", line 483, in _new
    with util.safe_reraise():
         ~~~~~~~~~~~~~~~~~^^
  File "D:\Program Files\pgAdmin 4\python\Lib\site-packages\sqlalchemy\util\langhelpers.py", line 121, in __exit__
    raise exc_value.with_traceback(exc_tb)
  File "D:\Program Files\pgAdmin 4\python\Lib\site-packages\sqlalchemy\sql\schema.py", line 479, in _new
    table.__init__(name, metadata, *args, _no_init=False, **kw)  # type: ignore[misc] # noqa: E501
    ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "D:\Program Files\pgAdmin 4\python\Lib\site-packages\sqlalchemy\sql\schema.py", line 861, in __init__
    self._autoload(
    ~~~~~~~~~~~~~~^
        metadata,
        ^^^^^^^^^
    ...<4 lines>...
        resolve_fks=resolve_fks,
        ^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "D:\Program Files\pgAdmin 4\python\Lib\site-packages\sqlalchemy\sql\schema.py", line 893, in _autoload
    conn_insp.reflect_table(
    ~~~~~~~~~~~~~~~~~~~~~~~^
        self,
        ^^^^^
    ...<4 lines>...
        _reflect_info=_reflect_info,
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "D:\Program Files\pgAdmin 4\python\Lib\site-packages\sqlalchemy\engine\reflection.py", line 1580, in reflect_table
    self._reflect_fk(
    ~~~~~~~~~~~~~~~~^
        _reflect_info,
        ^^^^^^^^^^^^^^
    ...<7 lines>...
        reflection_options,
        ^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "D:\Program Files\pgAdmin 4\python\Lib\site-packages\sqlalchemy\engine\reflection.py", line 1781, in _reflect_fk
    sa_schema.Table(
    ~~~~~~~~~~~~~~~^
        referred_table,
        ^^^^^^^^^^^^^^^
    ...<5 lines>...
        **reflection_options,
        ^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "", line 2, in __new__
  File "D:\Program Files\pgAdmin 4\python\Lib\site-packages\sqlalchemy\util\deprecations.py", line 281, in warned
    return fn(*args, **kwargs)  # type: ignore[no-any-return]
  File "D:\Program Files\pgAdmin 4\python\Lib\site-packages\sqlalchemy\sql\schema.py", line 429, in __new__
    return cls._new(*args, **kw)
           ~~~~~~~~^^^^^^^^^^^^^
  File "D:\Program Files\pgAdmin 4\python\Lib\site-packages\sqlalchemy\sql\schema.py", line 483, in _new
    with util.safe_reraise():
         ~~~~~~~~~~~~~~~~~^^
  File "D:\Program Files\pgAdmin 4\python\Lib\site-packages\sqlalchemy\util\langhelpers.py", line 121, in __exit__
    raise exc_value.with_traceback(exc_tb)
  File "D:\Program Files\pgAdmin 4\python\Lib\site-packages\sqlalchemy\sql\schema.py", line 479, in _new
    table.__init__(name, metadata, *args, _no_init=False, **kw)  # type: ignore[misc] # noqa: E501
    ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "D:\Program Files\pgAdmin 4\python\Lib\site-packages\sqlalchemy\sql\schema.py", line 861, in __init__
    self._autoload(
    ~~~~~~~~~~~~~~^
        metadata,
        ^^^^^^^^^
    ...<4 lines>...
        resolve_fks=resolve_fks,
        ^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "D:\Program Files\pgAdmin 4\python\Lib\site-packages\sqlalchemy\sql\schema.py", line 893, in _autoload
    conn_insp.reflect_table(
    ~~~~~~~~~~~~~~~~~~~~~~~^
        self,
        ^^^^^
    ...<4 lines>...
        _reflect_info=_reflect_info,
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "D:\Program Files\pgAdmin 4\python\Lib\site-packages\sqlalchemy\engine\reflection.py", line 1580, in reflect_table
    self._reflect_fk(
    ~~~~~~~~~~~~~~~~^
        _reflect_info,
        ^^^^^^^^^^^^^^
    ...<7 lines>...
        reflection_options,
        ^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "D:\Program Files\pgAdmin 4\python\Lib\site-packages\sqlalchemy\engine\reflection.py", line 1781, in _reflect_fk
    sa_schema.Table(
    ~~~~~~~~~~~~~~~^
        referred_table,
        ^^^^^^^^^^^^^^^
    ...<5 lines>...
        **reflection_options,
        ^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "", line 2, in __new__
  File "D:\Program Files\pgAdmin 4\python\Lib\site-packages\sqlalchemy\util\deprecations.py", line 281, in warned
    return fn(*args, **kwargs)  # type: ignore[no-any-return]
  File "D:\Program Files\pgAdmin 4\python\Lib\site-packages\sqlalchemy\sql\schema.py", line 429, in __new__
    return cls._new(*args, **kw)
           ~~~~~~~~^^^^^^^^^^^^^
  File "D:\Program Files\pgAdmin 4\python\Lib\site-packages\sqlalchemy\sql\schema.py", line 483, in _new
    with util.safe_reraise():
         ~~~~~~~~~~~~~~~~~^^
  File "D:\Program Files\pgAdmin 4\python\Lib\site-packages\sqlalchemy\util\langhelpers.py", line 121, in __exit__
    raise exc_value.with_traceback(exc_tb)
  File "D:\Program Files\pgAdmin 4\python\Lib\site-packages\sqlalchemy\sql\schema.py", line 479, in _new
    table.__init__(name, metadata, *args, _no_init=False, **kw)  # type: ignore[misc] # noqa: E501
    ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "D:\Program Files\pgAdmin 4\python\Lib\site-packages\sqlalchemy\sql\schema.py", line 861, in __init__
    self._autoload(
    ~~~~~~~~~~~~~~^
        metadata,
        ^^^^^^^^^
    ...<4 lines>...
        resolve_fks=resolve_fks,
        ^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "D:\Program Files\pgAdmin 4\python\Lib\site-packages\sqlalchemy\sql\schema.py", line 893, in _autoload
    conn_insp.reflect_table(
    ~~~~~~~~~~~~~~~~~~~~~~~^
        self,
        ^^^^^
    ...<4 lines>...
        _reflect_info=_reflect_info,
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "D:\Program Files\pgAdmin 4\python\Lib\site-packages\sqlalchemy\engine\reflection.py", line 1548, in reflect_table
    raise exc.NoSuchTableError(table_name)
sqlalchemy.exc.NoSuchTableError: user_old

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions