Database migration fails after update to 1.27.0 #1843

Closed
opened 2026-04-06 02:29:03 +02:00 by MrUnknownDE · 0 comments
Owner

Originally created by @Sommerwiesel on 12/25/2022

Subject of the issue

The database migration for group fails after the update to 1.27.0

Your environment (Generated via diagnostics page)

This environment is taken from 1.26.0 because 1.27.0 won't start correctly.

  • Vaultwarden version: v1.26.0
  • Web-vault version: v2022.10.0
  • Running within Docker: true (Base: Debian)
  • Environment settings overridden: false
  • 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: MySQL
  • Database version: 10.5.18-MariaDB-0+deb11u1
  • Clients used:
  • Reverse proxy and version:
  • Other relevant information:

Config (Generated via diagnostics page)

Show Running Config

Environment settings which are overridden:

{
  "_duo_akey": null,
  "_enable_duo": false,
  "_enable_email_2fa": true,
  "_enable_smtp": true,
  "_enable_yubico": true,
  "_icon_service_csp": "",
  "_icon_service_url": "",
  "_ip_header_enabled": true,
  "admin_ratelimit_max_burst": 3,
  "admin_ratelimit_seconds": 300,
  "admin_token": "***",
  "allowed_iframe_ancestors": "*****://*******.**",
  "attachments_folder": "data/attachments",
  "authenticator_disable_time_drift": false,
  "data_folder": "data",
  "database_conn_init": "",
  "database_max_conns": 10,
  "database_timeout": 30,
  "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": "*******.**",
  "hibp_api_key": null,
  "icon_blacklist_non_global_ips": true,
  "icon_blacklist_regex": null,
  "icon_cache_folder": "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_expiration_hours": 120,
  "invitation_org_name": "Vaultwarden",
  "invitations_allowed": true,
  "ip_header": "X-Real-IP",
  "job_poll_interval_ms": 30000,
  "log_file": null,
  "log_level": "error",
  "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_hints_allowed": false,
  "password_iterations": 500000,
  "reload_templates": false,
  "require_device_email": false,
  "rsa_key_filename": "data/rsa_key",
  "send_purge_schedule": "0 5 * * * *",
  "sends_allowed": true,
  "sends_folder": "data/sends",
  "show_password_hint": false,
  "signups_allowed": true,
  "signups_domains_whitelist": "",
  "signups_verify": true,
  "signups_verify_resend_limit": 6,
  "signups_verify_resend_time": 3600,
  "smtp_accept_invalid_certs": false,
  "smtp_accept_invalid_hostnames": false,
  "smtp_auth_mechanism": null,
  "smtp_debug": false,
  "smtp_explicit_tls": null,
  "smtp_from": "*********@*******.**",
  "smtp_from_name": "PASSWDVault",
  "smtp_host": "****.*************.**",
  "smtp_password": "***",
  "smtp_port": 587,
  "smtp_security": "starttls",
  "smtp_ssl": null,
  "smtp_timeout": 15,
  "smtp_username": "*********@*******.**",
  "templates_folder": "data/templates",
  "tmp_folder": "data/tmp",
  "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
}
  • vaultwarden version: 1.26.0 -> 1.27.0

  • Install method: Docker image

  • Clients used: All of them

  • Reverse proxy and version: NGINX 1.18

  • MySQL/MariaDB or PostgreSQL version: MariaDB 10.5.18

Docker-Compose.yml

version: "3"
services:
  passwdvault:
    cpus: 2
    mem_limit: 768m
    image: vaultwarden/server:1.26.0
    container_name: vaultwarden
    user: 10047:10047
    restart: unless-stopped
    volumes:
     - ./data:/data:rw
     - /var/run/mysqld/mysqld.sock:/var/run/mysqld/mysqld.sock
    env_file:
    - .env
    environment:
     - DATABASE_URL=mysql://${MYSQL_USER}:${MYSQL_PASSWORD}@${MYSQL_HOST}/${MYSQL_DATABASE}
    networks:
      passwdvault_proxy:
        ipv4_address: 192.42.7.2
networks:
  passwdvault_proxy:
    external: true

Steps to reproduce

  1. change image in docker-compose.yml to "vaultwarden/server:1.27.0"
  2. docker-compose pull
  3. docker-compose up

Expected behaviour

Vaultwarden performs DB migration and works as expected

Actual behaviour

Vaultwarden fails to do DB migrations and exits

Troubleshooting data

[2022-12-25 00:41:38.018][panic][ERROR] thread 'main' panicked at 'Error running migrations: QueryError(DieselMigrationName { name: "2022-07-27-110000_add_group_support", version: MigrationVersion("20220727110000") }, DatabaseError(Unknown, "Can't create table passwdvault.groups (errno: 150 "Foreign key constraint is incorrectly formed")"))': src/db/mod.rs:474
0: vaultwarden::init_logging::{{closure}}
1: std::panicking::rust_panic_with_hook
2: std::panicking::begin_panic_handler::{{closure}}
3: std::sys_common::backtrace::__rust_end_short_backtrace
4: rust_begin_unwind
5: core::panicking::panic_fmt
6: core::result::unwrap_failed
7: vaultwarden::db::mysql_migrations::run_migrations
8: vaultwarden::db::DbPool::from_config
9: vaultwarden::main::{{closure}}
10: tokio::runtime::park::CachedParkThread::block_on
11: tokio::runtime::scheduler::multi_thread::MultiThread::block_on
12: tokio::runtime::runtime::Runtime::block_on
13: rocket::async_main
14: vaultwarden::main
15: std::sys_common::backtrace::__rust_begin_short_backtrace
16: std::rt::lang_start::{{closure}}
17: std::rt::lang_start_internal
18: main
19: __libc_start_main
20: _start

*Originally created by @Sommerwiesel on 12/25/2022* ### Subject of the issue The database migration for group fails after the update to 1.27.0 ### Your environment (Generated via diagnostics page) ### This environment is taken from 1.26.0 because 1.27.0 won't start correctly. * Vaultwarden version: v1.26.0 * Web-vault version: v2022.10.0 * Running within Docker: true (Base: Debian) * Environment settings overridden: false * 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: MySQL * Database version: 10.5.18-MariaDB-0+deb11u1 * 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:** ```json { "_duo_akey": null, "_enable_duo": false, "_enable_email_2fa": true, "_enable_smtp": true, "_enable_yubico": true, "_icon_service_csp": "", "_icon_service_url": "", "_ip_header_enabled": true, "admin_ratelimit_max_burst": 3, "admin_ratelimit_seconds": 300, "admin_token": "***", "allowed_iframe_ancestors": "*****://*******.**", "attachments_folder": "data/attachments", "authenticator_disable_time_drift": false, "data_folder": "data", "database_conn_init": "", "database_max_conns": 10, "database_timeout": 30, "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": "*******.**", "hibp_api_key": null, "icon_blacklist_non_global_ips": true, "icon_blacklist_regex": null, "icon_cache_folder": "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_expiration_hours": 120, "invitation_org_name": "Vaultwarden", "invitations_allowed": true, "ip_header": "X-Real-IP", "job_poll_interval_ms": 30000, "log_file": null, "log_level": "error", "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_hints_allowed": false, "password_iterations": 500000, "reload_templates": false, "require_device_email": false, "rsa_key_filename": "data/rsa_key", "send_purge_schedule": "0 5 * * * *", "sends_allowed": true, "sends_folder": "data/sends", "show_password_hint": false, "signups_allowed": true, "signups_domains_whitelist": "", "signups_verify": true, "signups_verify_resend_limit": 6, "signups_verify_resend_time": 3600, "smtp_accept_invalid_certs": false, "smtp_accept_invalid_hostnames": false, "smtp_auth_mechanism": null, "smtp_debug": false, "smtp_explicit_tls": null, "smtp_from": "*********@*******.**", "smtp_from_name": "PASSWDVault", "smtp_host": "****.*************.**", "smtp_password": "***", "smtp_port": 587, "smtp_security": "starttls", "smtp_ssl": null, "smtp_timeout": 15, "smtp_username": "*********@*******.**", "templates_folder": "data/templates", "tmp_folder": "data/tmp", "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> * vaultwarden version: 1.26.0 -> 1.27.0 * Install method: Docker image * Clients used: All of them * Reverse proxy and version: NGINX 1.18 * MySQL/MariaDB or PostgreSQL version: MariaDB 10.5.18 ### Docker-Compose.yml ``` version: "3" services: passwdvault: cpus: 2 mem_limit: 768m image: vaultwarden/server:1.26.0 container_name: vaultwarden user: 10047:10047 restart: unless-stopped volumes: - ./data:/data:rw - /var/run/mysqld/mysqld.sock:/var/run/mysqld/mysqld.sock env_file: - .env environment: - DATABASE_URL=mysql://${MYSQL_USER}:${MYSQL_PASSWORD}@${MYSQL_HOST}/${MYSQL_DATABASE} networks: passwdvault_proxy: ipv4_address: 192.42.7.2 networks: passwdvault_proxy: external: true ``` ### Steps to reproduce 1. change image in docker-compose.yml to "vaultwarden/server:1.27.0" 2. docker-compose pull 3. docker-compose up ### Expected behaviour Vaultwarden performs DB migration and works as expected ### Actual behaviour Vaultwarden fails to do DB migrations and exits ### Troubleshooting data [2022-12-25 00:41:38.018][panic][ERROR] thread 'main' panicked at 'Error running migrations: QueryError(DieselMigrationName { name: "2022-07-27-110000_add_group_support", version: MigrationVersion("20220727110000") }, DatabaseError(Unknown, "Can't create table `passwdvault`.`groups` (errno: 150 \"Foreign key constraint is incorrectly formed\")"))': src/db/mod.rs:474 0: vaultwarden::init_logging::{{closure}} 1: std::panicking::rust_panic_with_hook 2: std::panicking::begin_panic_handler::{{closure}} 3: std::sys_common::backtrace::__rust_end_short_backtrace 4: rust_begin_unwind 5: core::panicking::panic_fmt 6: core::result::unwrap_failed 7: vaultwarden::db::mysql_migrations::run_migrations 8: vaultwarden::db::DbPool::from_config 9: vaultwarden::main::{{closure}} 10: tokio::runtime::park::CachedParkThread::block_on 11: tokio::runtime::scheduler::multi_thread::MultiThread::block_on 12: tokio::runtime::runtime::Runtime::block_on 13: rocket::async_main 14: vaultwarden::main 15: std::sys_common::backtrace::__rust_begin_short_backtrace 16: std::rt::lang_start::{{closure}} 17: std::rt::lang_start_internal 18: main 19: __libc_start_main 20: _start
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github/vaultwarden#1843