Skip to content
Back

upgrading from 1.4.5 to 1.6.0 broke my server

  • 0
  • Self Hosted
Ivan
13 Sep, 2025, 19:11

I managed to upgrade my self hosted instance from 1.4.5 to 1.6.0 and now when i try to log into the dashboard i get the error in the attached image. Also any apps i had that used appwrite seem to be broken as well (unable to use appwrite). appwrite logs:

TL;DR
Developers are facing issues logging into the dashboard after upgrading from 1.4.5 to 1.6.0. Errors were encountered related to missing tables and documents in the database. One suggestion is to try running the 1.5 migration before 1.6.0. It is recommended to make backups before upgrading versions. Ensure following the correct upgrade path and migration instructions. Errors like "Unknown attribute" and "Invalid document structure" are occurring post-upgrade, impacting app functionality. It is advised to restore from backup or rebuild if necessary.
Ivan
13 Sep, 2025, 19:12
TypeScript
 Worker 1 started successfully
appwrite  | Worker 2 started successfully
appwrite  | Worker 3 started successfully
appwrite  | Worker 4 started successfully
appwrite  | Worker 5 started successfully
appwrite  | Worker 6 started successfully
appwrite  | [Setup] - Server database init started...
appwrite  | [Setup] - Creating database: appwrite...
appwrite  | [Setup] - Server database init completed...
appwrite  | Server started successfully (max payload is 12,582,912 bytes)
appwrite  | Master pid 1, manager pid 7
appwrite  | Using deprecated logging configuration. Please update your configuration to use DSN format.Unable to parse DSN: scheme is required
appwrite  | [Error] Timestamp: 2025-09-13T19:04:21+00:00
appwrite  | [Error] Method: GET
appwrite  | [Error] URL: /v1/account
appwrite  | [Error] Type: Appwrite\Extend\Exception
appwrite  | [Error] Message: User (role: guests) missing scope (account)
appwrite  | [Error] File: /usr/src/code/app/controllers/shared/api.php
appwrite  | [Error] Line: 319
appwrite  | Failed to initialize logging provider: Unable to parse DSN: scheme is required
appwrite  | api.wawehome.com is not a main domain. Skipping SSL certificate generation.
appwrite  | api.wawehome.com is not a main domain. Skipping SSL certificate generation.
appwrite  | api.wawehome.com is not a main domain. Skipping SSL certificate generation.
appwrite  | api.wawehome.com is not a main domain. Skipping SSL certificate generation.
appwrite  | [Error] Timestamp: 2025-09-13T19:04:25+00:00
appwrite  | [Error] Method: POST
appwrite  | [Error] URL: /v1/account/sessions/email
appwrite  | [Error] Type: Utopia\Database\Exception\Structure
Ivan
13 Sep, 2025, 19:12
TypeScript
appwrite  | [Error] Message: Invalid document structure: Unknown attribute: "factors"
appwrite  | [Error] File: /usr/src/code/vendor/utopia-php/database/src/Database/Database.php
appwrite  | [Error] Line: 3216
appwrite  | Failed to initialize logging provider: Unable to parse DSN: scheme is required
appwrite  | 146.190.177.155 is not a publicly accessible domain. Skipping SSL certificate generation.
appwrite  | [Error] Timestamp: 2025-09-13T19:04:56+00:00
appwrite  | [Error] Method: 
appwrite  | [Error] URL: /.git/config
appwrite  | [Error] Type: Appwrite\Extend\Exception
appwrite  | [Error] Message: The requested route was not found. Please refer to the API docs and try again.
appwrite  | [Error] File: /usr/src/code/app/controllers/general.php
appwrite  | [Error] Line: 1051
appwrite  | Failed to initialize logging provider: Unable to parse DSN: scheme is required
appwrite  | [Error] Timestamp: 2025-09-13T19:05:08+00:00
appwrite  | [Error] Method: POST
appwrite  | [Error] URL: /v1/account/sessions/email
appwrite  | [Error] Type: Utopia\Database\Exception\Structure
appwrite  | [Error] Message: Invalid document structure: Unknown attribute: "factors"
appwrite  | [Error] File: /usr/src/code/vendor/utopia-php/database/src/Database/Database.php
appwrite  | [Error] Line: 3216
appwrite  | Failed to initialize logging provider: Unable to parse DSN: scheme is required
Ivan
13 Sep, 2025, 19:13

i did the migration and update as per these instructions https://appwrite.io/docs/advanced/self-hosting/production/updates

Steven
13 Sep, 2025, 19:23

I suggest your restore from backup

Ivan
13 Sep, 2025, 19:24

how?

Ivan
13 Sep, 2025, 19:27

upgrade makes the backup automatically, right? how do i find where its stored?

Steven
13 Sep, 2025, 19:29

what exactly did you do?

Did you upgrade to:

  1. 1.4.13
  2. 1.5.11
  3. 1.6.2

And run the migration after upgrading to 1.5.11 and 1.6.2?

Steven
13 Sep, 2025, 19:29

no it only saves the old compose files. you need to make backups of the instance yourself

Ivan
13 Sep, 2025, 19:29

went straight to 1.6.0

Steven
13 Sep, 2025, 19:30

welp

Ivan
13 Sep, 2025, 19:30

what do you suggest i do

Steven
13 Sep, 2025, 19:32

you can try running the 1.5 migration and then the 1.6 migration.

Otherwise, maybe try to go into the DB and extract your data and rebuilt from scratch

Ivan
13 Sep, 2025, 19:33

any guides on how do i run those migration?

Ivan
13 Sep, 2025, 20:26

i made a backup and then upgraded to 1.6.2 and loaded the backup. now i get this in the logs

Ivan
13 Sep, 2025, 20:26
TypeScript

appwrite  | Worker 1 started successfully
appwrite  | Worker 2 started successfully
appwrite  | Worker 7 started successfully
appwrite  | Worker 3 started successfully
appwrite  | Worker 4 started successfully
appwrite  | Worker 5 started successfully
appwrite  | Worker 6 started successfully
appwrite  | [Setup] - logs database init started...
appwrite  |   └── Creating database: logs...
appwrite  |   └── Skip: metadata table already exists
appwrite  | 
appwrite  | Fatal error: Uncaught PDOException: SQLSTATE[42S02]: Base table or view not found: 1932 Table 'appwrite.logsV1__metadata' doesn't exist in engine in @swoole/library/core/Database/PDOStatementProxy.php:49
appwrite  | Stack trace:
appwrite  | #0 @swoole/library/core/Database/PDOStatementProxy.php(49): PDOStatement->execute()
appwrite  | #1 /usr/src/code/vendor/utopia-php/database/src/Database/Adapter/SQL.php(239): Swoole\Database\PDOStatementProxy->__call('execute', Array)
appwrite  | #2 /usr/src/code/vendor/utopia-php/database/src/Database/Database.php(3055): Utopia\Database\Adapter\SQL->getDocument('_metadata', 'stats', Array, '')
appwrite  | #3 /usr/src/code/vendor/utopia-php/database/src/Database/Database.php(1326): Utopia\Database\Database->getDocument(Object(Utopia\Database\Document), 'stats')
appwrite  | #4 /usr/src/code/vendor/utopia-php/database/src/Database/Database.php(514): Utopia\Database\Database->Utopia\Database\{closure}()
appwrite  | #5 /usr/src/code/vendor/utopia-php/database/src/Database/Database.php(1326): Utopia\Database\Database->silent(Object(Closure))
appwrite  | #6 /usr/src/code/app/http.php(203): Utopia\Database\Database->getCollection('stats')
appwrite  | #7 /usr/src/code/app/http.php(249): createDatabase(Object(Utopia\App), 'getLogsDB', 'logs', Array, Object(Utopia\Pools\Group))
appwrite  | #8 [internal function]: {closure}()
appwrite  | #9 {main}
appwrite  |   thrown in @swoole/library/core/Database/PDOStatementProxy.php on line 49
Ivan
13 Sep, 2025, 20:26

cant log in into the dashboard (now i get error 404 after pressing login...

Reply

Reply to this thread by joining our Discord

Reply on Discord

Need support?

Join our Discord

Get community support by joining our Discord server.

Join Discord

Get premium support

Join Appwrite Pro and get email support from our team.

Learn more