Vaultwarden prelogin 404 故障

Bitwarden 客户端连接 Vaultwarden 时出现 prelogin/password 404 错误的原因与解决方法。

#type / debug #status / evergreen #tech / ops #tech / vaultwarden

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 会失效,需要重新登录。

升级后测试

  1. 在浏览器扩展中移除账户(不是锁定,是完整退出/移除)
  2. 重新登录,自托管地址填 https://pass.bakersean.top
  3. 查看日志:
docker logs -f vaultwarden

正常应该不再出现 404 Not Found,而是看到:

POST /identity/connect/token => 200 OK
GET /api/sync => 200 OK

参考

创建于 2026/6/17 更新于 2026/6/17