原因
系统重置,浏览器上的bitwarden(2026.4.1)需要重新登录,登录后进行例行配置,提示报错,后台404日志输出,以为是Vaultwarden版本低了。就例行升级了一下Vaultwarden到1.36.0 。
这么一操作,直接炸了!
vaultwarden | /--------------------------------------------------------------------\
vaultwarden | | Starting Vaultwarden |
vaultwarden | | Version 1.36.0 |
vaultwarden | |--------------------------------------------------------------------|
vaultwarden | | This is an *unofficial* Bitwarden implementation, DO NOT use the |
vaultwarden | | official channels to report bugs/features, regardless of client. |
vaultwarden | | Send usage/configuration questions or feature requests to: |
vaultwarden | | https://github.com/dani-garcia/vaultwarden/discussions or |
vaultwarden | | https://vaultwarden.discourse.group/ |
vaultwarden | | Report suspected bugs/issues in the software itself at: |
vaultwarden | | https://github.com/dani-garcia/vaultwarden/issues/new |
vaultwarden | \--------------------------------------------------------------------/
vaultwarden |
vaultwarden | [INFO] Using saved config from `data/config.json` for configuration.
vaultwarden |
vaultwarden | [WARNING] The following environment variables are being overridden by the config.json file.
vaultwarden | [WARNING] Please use the admin panel to make changes to them:
vaultwarden | [WARNING] DOMAIN, SENDS_ALLOWED, SIGNUPS_ALLOWED, EMERGENCY_ACCESS_ALLOWED, ADMIN_TOKEN, ADMIN_SESSION_LIFETIME
vaultwarden |
vaultwarden | [2026-05-22 11:54:01.038][panic][ERROR] thread 'main' panicked at 'Error running migrations: QueryError(DieselMigrationName { name: "2026-03-09-005927_add_archives", version: MigrationVersion("20260309005927") }, DatabaseError(Unknown, "Can't create table `vaultwarden`.`archives` (errno: 150 \"Foreign key constraint is incorrectly formed\")"))': src/db/mod.rs:501
vaultwarden | 0: vaultwarden::init_logging::{{closure}}
vaultwarden | 1: std::panicking::panic_with_hook
vaultwarden | 2: std::panicking::panic_handler::{closure#0}
vaultwarden | 3: std::sys::backtrace::__rust_end_short_backtrace::<std::panicking::panic_handler::{closure#0}, !>
vaultwarden | 4: __rustc::rust_begin_unwind
vaultwarden | 5: core::panicking::panic_fmt
vaultwarden | 6: core::result::unwrap_failed
vaultwarden | 7: vaultwarden::db::DbPool::from_config
vaultwarden | 8: vaultwarden::main::{{closure}}
vaultwarden | 9: vaultwarden::main
vaultwarden | 10: std::sys::backtrace::__rust_begin_short_backtrace
vaultwarden | 11: main
vaultwarden | 12: <unknown>
vaultwarden | 13: __libc_start_main
vaultwarden | 14: _start
vaultwarden |
vaultwarden exited with code 101
只有回退Vaultwarden到1.35.8 ,bitwarden(2026.3 )才行。但是这又不符合我喜欢用新的风格,所以进行了一次排查。
在此之前回滚数据库,登录了Vaultwarden页面进行了完整数据导出。
排查过程
Ai提示错误日志vaultwarden 在数据库迁移(migrations)阶段失败了,导致服务直接崩溃退出(exit code 101) 。
AI稀里糊涂说了一大堆,感觉没一个说中重点。
最终落在我用错版本上了。然后我就去Vaultwarden项目仓库关于数据库部分内容;看了看我的数据库用的是官方推荐的。
往下滑,发现了这么一篇内容:Foreign key errors, collation and charset(外键错误、排序规则和字符集),提到了外键约束失败,正符合我的报错信息,然后提交给AI说了,说我用错了字符集和排序规则 ,这算是历史遗留问题了,创建数据库我习惯用默认的,当时就没管。
修复
官方文档说了可以使用sql命令修复,但是不熟悉就没管,干脆从头重建。按照官方要求的创建了数据库,并重新创建账号,导入了以前的数据。才恢复了使用。
记录一次紧急修复Vaultwarden
https://blog.rsjwy.com/archives/vaultwarden-upgrade-error-fix
评论