Update to 1.25.0 fails #1289

Closed
opened 2026-02-05 00:32:32 +03:00 by OVERLORD · 3 comments
Owner

Originally created by @angelbarrera92 on GitHub (May 30, 2022).

Subject of the issue

Running vaultwarden 1.24.0, then, trying to update to 1.25.0 (just changing the container tag image). It fails during container startup.

Seems like the migration sql sentences are not working fine in my setup.

Deployment environment

  • Vaultwarden version: v1.24.0
  • Web-vault version: v2.25.1
  • Running within Docker: false (Base: Debian)
  • Environment settings overridden: true
  • Uses a reverse proxy: true
  • IP Header check: true (X-Real-IP)
  • Internet access: true
  • Internet access via a proxy: false
  • DNS Check: true
  • Time Check: true
  • Domain Configuration Check: true
  • HTTPS Check: true
  • Database type: SQLite
  • Database version: 3.35.4
  • Clients used:
  • Reverse proxy and version:
  • Other relevant information:

Config (Generated via diagnostics page)

Show Running Config

Environment settings which are overridden: DOMAIN, SIGNUPS_ALLOWED, ADMIN_TOKEN, SMTP_HOST, SMTP_SSL, SMTP_EXPLICIT_TLS, SMTP_PORT, SMTP_FROM, SMTP_FROM_NAME, SMTP_USERNAME, SMTP_PASSWORD, SMTP_AUTH_MECHANISM

{
  "_duo_akey": null,
  "_enable_duo": false,
  "_enable_email_2fa": false,
  "_enable_smtp": true,
  "_enable_yubico": true,
  "_ip_header_enabled": true,
  "admin_ratelimit_max_burst": 3,
  "admin_ratelimit_seconds": 300,
  "admin_token": "***",
  "allowed_iframe_ancestors": "",
  "attachments_folder": "/mnt/data/attachments",
  "authenticator_disable_time_drift": false,
  "data_folder": "/mnt/data",
  "database_max_conns": 10,
  "database_url": "/***/****/**.*******",
  "db_connection_retries": 15,
  "disable_2fa_remember": false,
  "disable_admin_token": false,
  "disable_icon_download": false,
  "domain": "*****://*****.*.**********.***",
  "domain_origin": "*****://*****.*.**********.***",
  "domain_path": "",
  "domain_set": true,
  "duo_host": null,
  "duo_ikey": null,
  "duo_skey": null,
  "email_attempts_limit": 3,
  "email_expiration_time": 600,
  "email_token_size": 6,
  "emergency_access_allowed": true,
  "emergency_notification_reminder_schedule": "0 5 * * * *",
  "emergency_request_timeout_schedule": "0 5 * * * *",
  "enable_db_wal": true,
  "extended_logging": true,
  "helo_name": null,
  "hibp_api_key": null,
  "icon_blacklist_non_global_ips": true,
  "icon_blacklist_regex": null,
  "icon_cache_folder": "/mnt/data/icon_cache",
  "icon_cache_negttl": 259200,
  "icon_cache_ttl": 2592000,
  "icon_download_timeout": 10,
  "icon_redirect_code": 302,
  "icon_service": "internal",
  "incomplete_2fa_schedule": "30 * * * * *",
  "incomplete_2fa_time_limit": 3,
  "invitation_org_name": "Bitwarden_RS",
  "invitations_allowed": true,
  "ip_header": "X-Real-IP",
  "job_poll_interval_ms": 30000,
  "log_file": null,
  "log_level": "Info",
  "log_timestamp_format": "%Y-%m-%d %H:%M:%S.%3f",
  "login_ratelimit_max_burst": 10,
  "login_ratelimit_seconds": 60,
  "org_attachment_limit": null,
  "org_creation_users": "",
  "password_iterations": 100000,
  "reload_templates": false,
  "require_device_email": false,
  "rsa_key_filename": "/mnt/data/rsa_key",
  "send_purge_schedule": "0 5 * * * *",
  "sends_allowed": true,
  "sends_folder": "/mnt/data/sends",
  "show_password_hint": true,
  "signups_allowed": false,
  "signups_domains_whitelist": "",
  "signups_verify": false,
  "signups_verify_resend_limit": 6,
  "signups_verify_resend_time": 3600,
  "smtp_accept_invalid_certs": false,
  "smtp_accept_invalid_hostnames": false,
  "smtp_auth_mechanism": "Login",
  "smtp_debug": false,
  "smtp_explicit_tls": true,
  "smtp_from": "***********@**********.***",
  "smtp_from_name": "Vaultwarden",
  "smtp_host": "****.**.*******.***",
  "smtp_password": "***",
  "smtp_port": 465,
  "smtp_ssl": true,
  "smtp_timeout": 15,
  "smtp_username": "***********@*.**********.***",
  "templates_folder": "/mnt/data/templates",
  "trash_auto_delete_days": null,
  "trash_purge_schedule": "0 5 0 * * *",
  "use_syslog": false,
  "user_attachment_limit": null,
  "web_vault_enabled": true,
  "web_vault_folder": "web-vault/",
  "websocket_address": "0.0.0.0",
  "websocket_enabled": true,
  "websocket_port": 3012,
  "yubico_client_id": null,
  "yubico_secret_key": null,
  "yubico_server": null
}

Steps to reproduce

I'm updating stopping the 1.24.0 and then starting 1.25.0 with the same configuration.

Expected behaviour

It updates :)

Actual behaviour

It fails with the following error:

Running migration 20220302210038
Executing migration script 20220302210038/up.sql
[2022-05-30 06:42:18.281][vaultwarden::util][WARN] Can't connect to database, retrying: DieselMig.
[CAUSE] QueryError(
    DatabaseError(
        __Unknown,
        "NOT NULL constraint failed: devices_new.updated_at",
    ),
)

Troubleshooting data

Non-default config:

  DATA_FOLDER: /mnt/data
  DOMAIN: "https://vault.<REDACTED>"
  WEBSOCKET_ENABLED: "true"
  ADMIN_TOKEN: "<REDACTED>"
  SIGNUPS_ALLOWED: "false"
  ADMIN_BASIC_AUTH: "<REDACTED>:<REDACTED>"
  SMTP_HOST: <REDACTED>
  SMTP_PORT: "465"
  SMTP_SSL: "true"
  SMTP_EXPLICIT_TLS: "true"
  SMTP_USERNAME: "vaultwarden@<REDACTED>"
  SMTP_FROM: "vaultwarden@<REDACTED>"
  SMTP_FROM_NAME: "Vaultwarden"
  SMTP_PASSWORD: "<REDACTED>"
  SMTP_AUTH_MECHANISM: "Login"

1.25.0 start logs

/--------------------------------------------------------------------\
|                        Starting Vaultwarden                        |
|                           Version 1.25.0                           |
|--------------------------------------------------------------------|
| This is an *unofficial* Bitwarden implementation, DO NOT use the   |
| official channels to report bugs/features, regardless of client.   |
| Send usage/configuration questions or feature requests to:         |
|   https://vaultwarden.discourse.group/                             |
| Report suspected bugs/issues in the software itself at:            |
|   https://github.com/dani-garcia/vaultwarden/issues/new            |
\--------------------------------------------------------------------/

[INFO] No .env file found.

[WARNING] The following environment variables are being overriden by the config file,
[WARNING] please use the admin panel to make changes to them:
[WARNING] DOMAIN, SIGNUPS_ALLOWED, ADMIN_TOKEN, SMTP_HOST, SMTP_SSL, SMTP_EXPLICIT_TLS, SMTP_PORT, SMTP_FROM, SMTP_FROM_NAME, SMTP_USERNAME, SMTP_PASSWORD, SMTP_AUTH_MECHANISM

[DEPRECATED]: `SMTP_SSL` or `SMTP_EXPLICIT_TLS` is set. Please use `SMTP_SECURITY` instead.
Running migration 20220302210038
Executing migration script 20220302210038/up.sql
[2022-05-30 06:42:18.281][vaultwarden::util][WARN] Can't connect to database, retrying: DieselMig.
[CAUSE] QueryError(
    DatabaseError(
        __Unknown,
        "NOT NULL constraint failed: devices_new.updated_at",
    ),
)
Running migration 20220302210038
Executing migration script 20220302210038/up.sql
[2022-05-30 06:42:19.291][vaultwarden::util][WARN] Can't connect to database, retrying: DieselMig.
[CAUSE] QueryError(
    DatabaseError(
        __Unknown,
        "NOT NULL constraint failed: devices_new.updated_at",
    ),
)
Running migration 20220302210038
Executing migration script 20220302210038/up.sql
[2022-05-30 06:42:20.300][vaultwarden::util][WARN] Can't connect to database, retrying: DieselMig.
[CAUSE] QueryError(
    DatabaseError(
        __Unknown,
        "NOT NULL constraint failed: devices_new.updated_at",
    ),
)
Running migration 20220302210038
Executing migration script 20220302210038/up.sql
[2022-05-30 06:42:21.309][vaultwarden::util][WARN] Can't connect to database, retrying: DieselMig.
[CAUSE] QueryError(
    DatabaseError(
        __Unknown,
        "NOT NULL constraint failed: devices_new.updated_at",
    ),
)
Running migration 20220302210038
Executing migration script 20220302210038/up.sql
[2022-05-30 06:42:22.321][vaultwarden::util][WARN] Can't connect to database, retrying: DieselMig.
[CAUSE] QueryError(
    DatabaseError(
        __Unknown,
        "NOT NULL constraint failed: devices_new.updated_at",
    ),
)
Running migration 20220302210038
Executing migration script 20220302210038/up.sql
[2022-05-30 06:42:23.333][vaultwarden::util][WARN] Can't connect to database, retrying: DieselMig.
[CAUSE] QueryError(
    DatabaseError(
        __Unknown,
        "NOT NULL constraint failed: devices_new.updated_at",
    ),
)
Running migration 20220302210038
Executing migration script 20220302210038/up.sql
[2022-05-30 06:42:24.343][vaultwarden::util][WARN] Can't connect to database, retrying: DieselMig.
[CAUSE] QueryError(
    DatabaseError(
        __Unknown,
        "NOT NULL constraint failed: devices_new.updated_at",
    ),
)
Running migration 20220302210038
Executing migration script 20220302210038/up.sql
[2022-05-30 06:42:25.354][vaultwarden::util][WARN] Can't connect to database, retrying: DieselMig.
[CAUSE] QueryError(
    DatabaseError(
        __Unknown,
        "NOT NULL constraint failed: devices_new.updated_at",
    ),
)
Running migration 20220302210038
Executing migration script 20220302210038/up.sql
[2022-05-30 06:42:26.375][vaultwarden::util][WARN] Can't connect to database, retrying: DieselMig.
[CAUSE] QueryError(
    DatabaseError(
        __Unknown,
        "NOT NULL constraint failed: devices_new.updated_at",
    ),
)
Running migration 20220302210038
Executing migration script 20220302210038/up.sql
[2022-05-30 06:42:27.385][vaultwarden::util][WARN] Can't connect to database, retrying: DieselMig.
[CAUSE] QueryError(
    DatabaseError(
        __Unknown,
        "NOT NULL constraint failed: devices_new.updated_at",
    ),
)
Originally created by @angelbarrera92 on GitHub (May 30, 2022). ### Subject of the issue Running vaultwarden 1.24.0, then, trying to update to 1.25.0 (just changing the container tag image). It fails during container startup. Seems like the migration sql sentences are not working fine in my setup. ### Deployment environment * Vaultwarden version: v1.24.0 * Web-vault version: v2.25.1 * Running within Docker: false (Base: Debian) * Environment settings overridden: true * Uses a reverse proxy: true * IP Header check: true (X-Real-IP) * Internet access: true * Internet access via a proxy: false * DNS Check: true * Time Check: true * Domain Configuration Check: true * HTTPS Check: true * Database type: SQLite * Database version: 3.35.4 * Clients used: * Reverse proxy and version: * Other relevant information: ### Config (Generated via diagnostics page) <details><summary>Show Running Config</summary> **Environment settings which are overridden:** DOMAIN, SIGNUPS_ALLOWED, ADMIN_TOKEN, SMTP_HOST, SMTP_SSL, SMTP_EXPLICIT_TLS, SMTP_PORT, SMTP_FROM, SMTP_FROM_NAME, SMTP_USERNAME, SMTP_PASSWORD, SMTP_AUTH_MECHANISM ```json { "_duo_akey": null, "_enable_duo": false, "_enable_email_2fa": false, "_enable_smtp": true, "_enable_yubico": true, "_ip_header_enabled": true, "admin_ratelimit_max_burst": 3, "admin_ratelimit_seconds": 300, "admin_token": "***", "allowed_iframe_ancestors": "", "attachments_folder": "/mnt/data/attachments", "authenticator_disable_time_drift": false, "data_folder": "/mnt/data", "database_max_conns": 10, "database_url": "/***/****/**.*******", "db_connection_retries": 15, "disable_2fa_remember": false, "disable_admin_token": false, "disable_icon_download": false, "domain": "*****://*****.*.**********.***", "domain_origin": "*****://*****.*.**********.***", "domain_path": "", "domain_set": true, "duo_host": null, "duo_ikey": null, "duo_skey": null, "email_attempts_limit": 3, "email_expiration_time": 600, "email_token_size": 6, "emergency_access_allowed": true, "emergency_notification_reminder_schedule": "0 5 * * * *", "emergency_request_timeout_schedule": "0 5 * * * *", "enable_db_wal": true, "extended_logging": true, "helo_name": null, "hibp_api_key": null, "icon_blacklist_non_global_ips": true, "icon_blacklist_regex": null, "icon_cache_folder": "/mnt/data/icon_cache", "icon_cache_negttl": 259200, "icon_cache_ttl": 2592000, "icon_download_timeout": 10, "icon_redirect_code": 302, "icon_service": "internal", "incomplete_2fa_schedule": "30 * * * * *", "incomplete_2fa_time_limit": 3, "invitation_org_name": "Bitwarden_RS", "invitations_allowed": true, "ip_header": "X-Real-IP", "job_poll_interval_ms": 30000, "log_file": null, "log_level": "Info", "log_timestamp_format": "%Y-%m-%d %H:%M:%S.%3f", "login_ratelimit_max_burst": 10, "login_ratelimit_seconds": 60, "org_attachment_limit": null, "org_creation_users": "", "password_iterations": 100000, "reload_templates": false, "require_device_email": false, "rsa_key_filename": "/mnt/data/rsa_key", "send_purge_schedule": "0 5 * * * *", "sends_allowed": true, "sends_folder": "/mnt/data/sends", "show_password_hint": true, "signups_allowed": false, "signups_domains_whitelist": "", "signups_verify": false, "signups_verify_resend_limit": 6, "signups_verify_resend_time": 3600, "smtp_accept_invalid_certs": false, "smtp_accept_invalid_hostnames": false, "smtp_auth_mechanism": "Login", "smtp_debug": false, "smtp_explicit_tls": true, "smtp_from": "***********@**********.***", "smtp_from_name": "Vaultwarden", "smtp_host": "****.**.*******.***", "smtp_password": "***", "smtp_port": 465, "smtp_ssl": true, "smtp_timeout": 15, "smtp_username": "***********@*.**********.***", "templates_folder": "/mnt/data/templates", "trash_auto_delete_days": null, "trash_purge_schedule": "0 5 0 * * *", "use_syslog": false, "user_attachment_limit": null, "web_vault_enabled": true, "web_vault_folder": "web-vault/", "websocket_address": "0.0.0.0", "websocket_enabled": true, "websocket_port": 3012, "yubico_client_id": null, "yubico_secret_key": null, "yubico_server": null } ``` </details> ### Steps to reproduce I'm updating stopping the 1.24.0 and then starting 1.25.0 with the same configuration. ### Expected behaviour It updates :) ### Actual behaviour It fails with the following error: ```bash Running migration 20220302210038 Executing migration script 20220302210038/up.sql [2022-05-30 06:42:18.281][vaultwarden::util][WARN] Can't connect to database, retrying: DieselMig. [CAUSE] QueryError( DatabaseError( __Unknown, "NOT NULL constraint failed: devices_new.updated_at", ), ) ``` ### Troubleshooting data Non-default config: ``` DATA_FOLDER: /mnt/data DOMAIN: "https://vault.<REDACTED>" WEBSOCKET_ENABLED: "true" ADMIN_TOKEN: "<REDACTED>" SIGNUPS_ALLOWED: "false" ADMIN_BASIC_AUTH: "<REDACTED>:<REDACTED>" SMTP_HOST: <REDACTED> SMTP_PORT: "465" SMTP_SSL: "true" SMTP_EXPLICIT_TLS: "true" SMTP_USERNAME: "vaultwarden@<REDACTED>" SMTP_FROM: "vaultwarden@<REDACTED>" SMTP_FROM_NAME: "Vaultwarden" SMTP_PASSWORD: "<REDACTED>" SMTP_AUTH_MECHANISM: "Login" ``` 1.25.0 start logs ```bash /--------------------------------------------------------------------\ | Starting Vaultwarden | | Version 1.25.0 | |--------------------------------------------------------------------| | This is an *unofficial* Bitwarden implementation, DO NOT use the | | official channels to report bugs/features, regardless of client. | | Send usage/configuration questions or feature requests to: | | https://vaultwarden.discourse.group/ | | Report suspected bugs/issues in the software itself at: | | https://github.com/dani-garcia/vaultwarden/issues/new | \--------------------------------------------------------------------/ [INFO] No .env file found. [WARNING] The following environment variables are being overriden by the config file, [WARNING] please use the admin panel to make changes to them: [WARNING] DOMAIN, SIGNUPS_ALLOWED, ADMIN_TOKEN, SMTP_HOST, SMTP_SSL, SMTP_EXPLICIT_TLS, SMTP_PORT, SMTP_FROM, SMTP_FROM_NAME, SMTP_USERNAME, SMTP_PASSWORD, SMTP_AUTH_MECHANISM [DEPRECATED]: `SMTP_SSL` or `SMTP_EXPLICIT_TLS` is set. Please use `SMTP_SECURITY` instead. Running migration 20220302210038 Executing migration script 20220302210038/up.sql [2022-05-30 06:42:18.281][vaultwarden::util][WARN] Can't connect to database, retrying: DieselMig. [CAUSE] QueryError( DatabaseError( __Unknown, "NOT NULL constraint failed: devices_new.updated_at", ), ) Running migration 20220302210038 Executing migration script 20220302210038/up.sql [2022-05-30 06:42:19.291][vaultwarden::util][WARN] Can't connect to database, retrying: DieselMig. [CAUSE] QueryError( DatabaseError( __Unknown, "NOT NULL constraint failed: devices_new.updated_at", ), ) Running migration 20220302210038 Executing migration script 20220302210038/up.sql [2022-05-30 06:42:20.300][vaultwarden::util][WARN] Can't connect to database, retrying: DieselMig. [CAUSE] QueryError( DatabaseError( __Unknown, "NOT NULL constraint failed: devices_new.updated_at", ), ) Running migration 20220302210038 Executing migration script 20220302210038/up.sql [2022-05-30 06:42:21.309][vaultwarden::util][WARN] Can't connect to database, retrying: DieselMig. [CAUSE] QueryError( DatabaseError( __Unknown, "NOT NULL constraint failed: devices_new.updated_at", ), ) Running migration 20220302210038 Executing migration script 20220302210038/up.sql [2022-05-30 06:42:22.321][vaultwarden::util][WARN] Can't connect to database, retrying: DieselMig. [CAUSE] QueryError( DatabaseError( __Unknown, "NOT NULL constraint failed: devices_new.updated_at", ), ) Running migration 20220302210038 Executing migration script 20220302210038/up.sql [2022-05-30 06:42:23.333][vaultwarden::util][WARN] Can't connect to database, retrying: DieselMig. [CAUSE] QueryError( DatabaseError( __Unknown, "NOT NULL constraint failed: devices_new.updated_at", ), ) Running migration 20220302210038 Executing migration script 20220302210038/up.sql [2022-05-30 06:42:24.343][vaultwarden::util][WARN] Can't connect to database, retrying: DieselMig. [CAUSE] QueryError( DatabaseError( __Unknown, "NOT NULL constraint failed: devices_new.updated_at", ), ) Running migration 20220302210038 Executing migration script 20220302210038/up.sql [2022-05-30 06:42:25.354][vaultwarden::util][WARN] Can't connect to database, retrying: DieselMig. [CAUSE] QueryError( DatabaseError( __Unknown, "NOT NULL constraint failed: devices_new.updated_at", ), ) Running migration 20220302210038 Executing migration script 20220302210038/up.sql [2022-05-30 06:42:26.375][vaultwarden::util][WARN] Can't connect to database, retrying: DieselMig. [CAUSE] QueryError( DatabaseError( __Unknown, "NOT NULL constraint failed: devices_new.updated_at", ), ) Running migration 20220302210038 Executing migration script 20220302210038/up.sql [2022-05-30 06:42:27.385][vaultwarden::util][WARN] Can't connect to database, retrying: DieselMig. [CAUSE] QueryError( DatabaseError( __Unknown, "NOT NULL constraint failed: devices_new.updated_at", ), ) ```
Author
Owner

@BlackDex commented on GitHub (May 30, 2022):

Strange, there seems to be something invalid already with your current devices table.
Best solution here would be to stop Vaultwarden, make a copy of the database as backup.
Then open the database using a sqlite editor (GUI is the most easy for this one).
And then look at the devices table which has nothing filled in at the updated_at table.
Then you could add a custom date there and try to rerun the the upgrade.

An other option would be (if that works) is to remove all sessions for all users via the admin interface.
That should clear that table, but also forces you to do a re-login on all devices for all users.

@BlackDex commented on GitHub (May 30, 2022): Strange, there seems to be something invalid already with your current `devices` table. Best solution here would be to stop Vaultwarden, make a copy of the database as backup. Then open the database using a sqlite editor (GUI is the most easy for this one). And then look at the devices table which has nothing filled in at the `updated_at` table. Then you could add a custom date there and try to rerun the the upgrade. An other option would be (if that works) is to remove all sessions for all users via the admin interface. That should clear that table, but also forces you to do a re-login on all devices for all users.
Author
Owner

@angelbarrera92 commented on GitHub (May 30, 2022):

Added a dummy date in those row where were null; new errors appear in the same table while re-running the upgrade:

Running migration 20220302210038
Executing migration script 20220302210038/up.sql
[2022-05-30 15:22:23.227][vaultwarden][ERROR] Error creating database pool: DieselMig.
[CAUSE] QueryError(
    DatabaseError(
        __Unknown,
        "NOT NULL constraint failed: devices_new.user_uuid",
    ),
)
@angelbarrera92 commented on GitHub (May 30, 2022): Added a dummy date in those row where were null; new errors appear in the same table while re-running the upgrade: ``` Running migration 20220302210038 Executing migration script 20220302210038/up.sql [2022-05-30 15:22:23.227][vaultwarden][ERROR] Error creating database pool: DieselMig. [CAUSE] QueryError( DatabaseError( __Unknown, "NOT NULL constraint failed: devices_new.user_uuid", ), ) ```
Author
Owner

@BlackDex commented on GitHub (May 30, 2022):

Well, there are just two fields/columns which may be empty, and those are push_token and twofactor_remember all other fields should be filled.
If you have a records which do not have a user_uuid i would remove those records and try again

@BlackDex commented on GitHub (May 30, 2022): Well, there are just two fields/columns which may be empty, and those are `push_token` and `twofactor_remember` all other fields should be filled. If you have a records which do not have a `user_uuid` i would remove those records and try again
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/vaultwarden#1289