Skip to content

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

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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions