简短的答案
Whizi的访问问题可以分成四类:登录尝试本身失败、浏览器没能拿到新的会话令牌、已经有另一个会话在运行,或者账号共享限制拒绝了这次请求。报错信息会告诉你是哪一种情况,下面每一条文案都是直接引用自产生它的代码。
下面这五条覆盖了登录、会话、单一会话和共享拒绝的情况:
| 报错信息 | 触发原因 | 解决方法 |
|---|---|---|
Login failed. Please check your credentials. | 登录请求返回的状态不是complete | 重新输入邮箱和密码,或重置密码 |
Invalid or expired session token. | HTTP 401。令牌验证因任何原因失败:令牌过期、签名错误、签发方不对 | 退出登录后重新登录 |
Authentication required. | HTTP 401。请求的Authorization头中没有携带Bearer令牌 | 重新登录 |
Please sign out from other sessions and try again. | 登录报错文本中包含"single session mode" | 在另一个浏览器或标签页中退出Whizi登录,然后重试 |
Account sharing limit reached. Please use your own Whizi account. | HTTP 403。过去24小时内该账号出现了超过3个不同的设备或会话密钥 | 使用你自己的账号。这个时间窗口是滚动计算的,所以除此之外唯一的办法就是等待 |
后端返回的每一个身份验证失败都带有代码unauthorized和HTTP 401。在聊天页面和分享弹窗中,后端的报错信息会原样显示,所以在网络请求记录里看到的文本和屏幕上看到的文本是同一条。
"会话已过期"到底是什么意思
这句话的意思是:页面请求了一个新的会话令牌,但没有拿到。同一个问题,会根据发生时所在的位置显示成不同的句子。
| 出现位置 | 报错信息 |
|---|---|
| 没有携带令牌的任何后端请求 | Authentication required. |
| 令牌验证失败的任何后端请求 | Invalid or expired session token. |
| 令牌验证通过但缺少某个claim | The Clerk user_jwt token must include sub and email claims. |
| 聊天列表、加载聊天、删除、重命名或上传 | Failed to retrieve session token. |
| 并排对比功能,在发送时 | Your session expired. Please refresh and try again. |
| 导入ChatGPT或Claude导出文件时 | Your session ended. Sign in again, then start the import. |
| 设置页面,在取消订阅之前 | Authentication failed. Please sign in again. |
| 升级弹窗,在结账之前 | Authentication failed. Please sign in again. |
| 分享弹窗 | Not signed in. |
| 语音悬浮层 | Sign in to Whizi to use voice mode. |
| 会话请求本身 | Failed to fetch session ({status}). |
退出登录后重新登录。有两条文案直接说明了这一点:Your session ended. Sign in again, then start the import.和Authentication failed. Please sign in again.
登录和密码重置报错
身份验证和账号管理由Clerk提供,所以这些报错信息来自登录流程,而不是来自Whizi自己的密码存储系统。
| 报错信息 | 触发条件 |
|---|---|
Login failed. Please check your credentials. | 登录请求返回的状态不是complete |
An error occurred during login. | 登录请求抛出异常,且没有返回可读的报错信息 |
Please sign out from other sessions and try again. | 报错文本中包含"single session mode" |
Failed to authenticate with social login. | Google重定向跳转在离开页面前抛出了异常 |
Please enter your email address. | 密码重置表单在邮箱字段为空的情况下被提交 |
Failed to send reset email. Please try again. | 密码重置请求抛出了异常 |
Current password is required. | 在重置密码页面,当前密码字段为空 |
Passwords do not match. | 两次输入的新密码不一致 |
Failed to reset password. Please try again. | 重置失败,且没有返回可读的报错信息 |
Please sign out from other sessions and try again.是列表中唯一一条解决方法在别处的报错:先关闭Whizi已登录的另一个标签页或浏览器,然后再来重试。
设置页面里有一份独立的重置流程,用的是同样的两条文案:字段为空时是Please enter your email address.,发送失败时是Failed to send reset email. Please try again.重试就是全部的解决方法。这个流程本身的分步说明在重置你的Whizi密码。如果一直失败,请联系客服,不要另外注册一个新账号。
在短时间内反复重试还可能触发限流,对应HTTP 429,报错为Too many requests. Please wait and try again.这条限流背后的时间窗口在Whizi速率限制中说明。
注册和邮箱验证报错
| 报错信息 | 触发条件 |
|---|---|
Registration service is not available. | 表单提交时注册对象还没有准备好 |
Registration failed. Please check your information. | 注册请求抛出异常,且没有返回可读的报错信息 |
Verification service is not available. | 邮箱验证码这一步在没有注册对象的情况下运行 |
Verification failed. Please try again. | 验证请求返回的状态不是complete |
Invalid verification code. Please check your email. | 验证请求抛出了异常 |
Could not start Google sign-up. Please try again. | Google注册重定向抛出了异常 |
Missing session token after social signup. | 社交账号注册完成后没有拿到令牌 |
Your account was created, but checkout could not start. Please sign in and choose your plan again. | 携带待处理结账的注册流程之后没能拿到令牌 |
最后一条并不是注册失败:账号已经创建成功,只是那笔待处理的结账丢失了。接下来该怎么做,见结账时银行卡被拒或支付失败。
两条"服务不可用"的文案,意思都是表单提交时Clerk的注册对象还没准备好,而不是你填的信息被拒绝了。等页面加载完成后再提交一次。
临时邮箱地址会被拒绝
Temporary email addresses are not allowed. Please use a permanent email address.是HTTP 403,代码为disposable_email_blocked。它在创建账号时触发,条件是邮箱域名在临时邮箱名单上。
已经存在的账号不受这份名单影响。解决方法是换一个长期使用的邮箱地址,没有例外申请的渠道。
同样的文案也可能在结账时出现,只是状态不同。这部分内容在结账时银行卡被拒或支付失败中说明。
账号共享次数超限
Account sharing limit reached. Please use your own Whizi account.是HTTP 403,代码为account_sharing_limit。当同一个账号在过去24小时内出现超过3个不同的设备或会话密钥时触发。
正常的多设备使用是被支持、也是预期内的:同一个账号可以在多台设备上登录,两边都能访问同一个后端和同一个对话记录库。但每个账号同一时间只能运行一次生成,由每用户锁强制执行,所以同一账号的两台设备永远不可能同时生成内容。
这项限制没有设置项,也没有自助重置的办法。时间窗口覆盖过去24小时,所以随着较早的设备密钥过期,它会自己解除。如果你是一个人在一天内用了三个以上的浏览器或设备,并且一直触发这个限制,请联系客服,不要尝试绕过它。
已登录,但Whizi说账号不存在
User not found.会在会话背后对应的users行已被删除时触发。结账接口在读不到调用者的账号行时,会返回同样的文案,对应HTTP 404代码not_found。
账号删除在设置页面里是两步确认操作,它会移除有效的Whizi账号记录、已同步的聊天记录和消息、上传和生成的媒体文件、保存的手机端记忆、推荐记录、手机端权益和用量状态、限流状态、推送令牌,以及Clerk身份验证账号,具体以隐私政策中规定的有限保留期为准。
如果你看到这条报错,但并没有删除任何东西,请联系Whizi客服。目前没有自助修复的办法。删除操作的完整范围见Whizi如何处理你的数据。
访客身份和账号绑定
访客使用就是未登录使用。在手机应用里,创建账号是可选的,不注册直接继续使用会创建一个匿名的、绑定设备的访客身份,不需要姓名或邮箱地址。它有自己的一套访问报错。
| 报错信息 | 触发条件 |
|---|---|
A valid guest session is required. | HTTP 401。访客令牌缺失、格式错误,或者指向一个不存在的访客身份 |
This guest profile has already been linked. Sign in to continue. | HTTP 409。访客令牌对应的身份已经被另一个账号绑定 |
This guest profile is linked to a different Whizi account. | HTTP 409。要绑定的访客身份已经绑定在别处 |
Wait for the current reply to finish, then try creating your account again. | HTTP 409。在生成仍在进行时,该身份被拿去绑定账号 |
只有最后一条有简单的解决方法:等回复生成完成,再创建账号。另外三条都意味着这个访客身份已经绑定在某个账号上,登录那个账号即可,如果你不认识那个账号,请联系客服。
访客数据不会因此被困住。数据导出对访客会话同样有效,因为访客身份里也保存着值得导出的真实聊天记录和记忆。
账号本身无法执行某个操作时
以下是显示在设置页面里的账号级别失败,而不是登录失败。
| 报错信息 | 含义 |
|---|---|
Your account could not be deleted. Please try again, or contact support. | 删除请求失败,显示在设置页面 |
Account deletion failed ({status}). | 那条提示背后的原始报错,附带HTTP状态码 |
Failed to export your data. Please try again. | 数据导出失败,显示在设置页面 |
Export request failed ({status}). | 那条提示背后的原始报错 |
数据导出限流为每分钟5次请求,因为一次导出会读取账号名下的所有内容。超过这个频率重试会被这项限制拒绝。
Whizi没有公开或开发者API,不签发API密钥,也没有个人访问令牌。每个接口都以最终用户会话的身份验证,所以没有密钥可以轮换、吊销或粘贴。如果某个脚本或第三方工具无法访问你的账号,原因就在这里。
- 会话报错意味着请求没有携带可用的令牌:退出登录后重新登录
- 会话令牌无效或已过期对应HTTP 401,代码是unauthorized
- 单一会话提示意味着必须先在另一个Whizi标签页退出登录
- 账号共享限制在24小时内出现超过3个设备或会话密钥时触发,之后会自动解除
- 临时邮箱域名在注册时会被拒绝,对应HTTP 403 disposable_email_blocked
- 账号不存在意味着会话背后的账号记录已经消失:请联系客服
- 429表示触发了限流窗口,此时应该等待,而不是循环重试
- 没有API密钥或个人访问令牌需要轮换
常见问题
重置密码能清除Invalid or expired session token.吗?
Invalid or expired session token.吗?不能。这条报错是在对照Clerk JWKS验证JWT失败时返回的,它针对的是浏览器携带的令牌,而不是账号的密码。密码重置流程有自己独立的一套文案,包括Current password is required.和Passwords do not match.应该退出登录后重新登录。
Failed to retrieve session token.是Whizi的服务故障吗?
Failed to retrieve session token.是Whizi的服务故障吗?不是后端拒绝。这是网站自己抛出的错误,只要在聊天列表、加载聊天、删除、重命名或上传请求之前getToken没有返回任何东西,就会抛出这条文案,所以它不带HTTP状态码,也没有错误代码。对应的后端版本,也就是带状态码的那两条,是Authentication required.和Invalid or expired session token.,都是HTTP 401 unauthorized。
Failed to fetch session ({status}).是什么意思,里面的数字是什么?
Failed to fetch session ({status}).是什么意思,里面的数字是什么?这是会话请求本身失败时,网站抛出的原始报错,{status}的位置会填入那次请求的HTTP状态码。它不是为读者写的提示文案,这也是它看起来像内部字符串的原因。联系客服时请把这串文字连同数字原样贴出来。
我完全登录不进去,而且这里的文案都对不上,该怎么办?
联系客服,把你看到的原文和当时在做什么都贴出来。这里的每一条文案都对应代码里的一个具体位置,所以逐字引用是客服能拿到的最快线索。目前没有自助解锁账号的办法。