Vaultwarden prelogin 404 故障
Bitwarden 客户端连接 Vaultwarden 时出现 prelogin/password 404 错误的原因与解决方法。
Vaultwarden prelogin 404 故障
[!info] related notes [[vaultwarden|Vaultwarden]] Docker Compose 容器升级步骤 Debian 部署 Homepage 和 Vaultwarden
问题现象
Bitwarden 浏览器扩展或手机 App 无法登录自托管的 Vaultwarden,服务端日志出现:
POST /identity/accounts/prelogin/password => 404 Not Found
根本原因
这是 客户端与服务端版本不兼容 导致的。
Bitwarden 官方在较新版本客户端中引入了新的 API 接口 /identity/accounts/prelogin/password(用于密码强度预校验),这个接口是在 Vaultwarden 1.36.0 中才加入支持的。
如果你的 Vaultwarden 容器还停留在旧版本(如 1.35.x),就会对这个新接口返回 404。
为什么容器不会自动升级
Docker 的 latest 标签只是镜像标签,容器不会因为远端 latest 更新而自动升级。必须手动 docker pull 后重建容器才能更新。详见 docker-compose-upgrade-container。
确认当前版本
docker exec vaultwarden /vaultwarden --version
如果返回 Vaultwarden 1.35.x,说明需要升级。
解决方法:升级 Vaultwarden
完整步骤见 docker-compose-upgrade-container,这里给出快速流程:
# 1. 备份数据
sudo tar czf ~/vaultwarden-data-backup-$(date +%F-%H%M).tar.gz /opt/docker/vaultwarden/data
# 2. 拉取最新镜像
cd /opt/docker
docker compose pull vaultwarden
# 3. 重建容器
docker compose up -d vaultwarden
# 4. 确认新版本
docker exec vaultwarden /vaultwarden --version
同时检查 DOMAIN 环境变量
确保 compose.yaml 中配置了正确的 DOMAIN:
environment:
- DOMAIN: "https://pass.bakersean.top"
如果之前没有 DOMAIN 或者是 http://localhost,旧 token 里会出现 iss: http://localhost|login,改好后旧 token 会失效,需要重新登录。
升级后测试
- 在浏览器扩展中移除账户(不是锁定,是完整退出/移除)
- 重新登录,自托管地址填
https://pass.bakersean.top - 查看日志:
docker logs -f vaultwarden
正常应该不再出现 404 Not Found,而是看到:
POST /identity/connect/token => 200 OK
GET /api/sync => 200 OK