Whiziにログインできない、またはセッションがすぐ切れる

簡潔な回答

Whiziのアクセス障害は4つのグループに分かれます。サインイン試行そのものが失敗した場合、ブラウザが新しいセッショントークンを取得できなかった場合、別のセッションがすでに開いている場合、またはアカウント共有ガードがリクエストを拒否した場合です。バックエンドからの認証失敗はすべてコードunauthorizedとHTTP 401を伴い、サインアウトしてから再度サインインすることでセッション関連のケースは解消します。

簡潔な回答

Whiziのアクセス障害は4つのグループに分かれます。サインイン試行そのものが失敗した場合、ブラウザが新しいセッショントークンを取得できなかった場合、別のセッションがすでに開いている場合、またはアカウント共有ガードがリクエストを拒否した場合です。表示されるメッセージがどれに当たるかを教えてくれ、以下の各メッセージはそれを生成するコードからそのまま引用しています。

以下の5つは、サインイン、セッション、単一セッション、共有拒否のケースを網羅しています:

MessageWhat triggered itFix
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つを超える異なるデバイスまたはセッションキーが検出された自分自身のアカウントを使う。このウィンドウはローリング方式なので、それ以外の方法は待つしかない

バックエンドからの認証失敗はすべてHTTP 401とともにコードunauthorizedを返します。チャットページと共有モーダルでは、バックエンドのメッセージがそのまま表示されるため、ネットワークトレース上の文字列と画面上の文字列はそこでは同じものになります。

「セッションが切れた」の本当の意味

これは、ページが新しいセッショントークンを要求したものの取得できなかったことを意味します。この単一の条件が、発生した場所によって異なる文言で表れます。

Where you see itMessage
トークンなしのバックエンド呼び出しAuthentication required.
トークンの検証に失敗したバックエンド呼び出しInvalid or expired session token.
検証は通るがクレームが欠けているトークン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}).

サインアウトしてから再度サインインしてください。次の2つの文言は、それ自体がそう述べています:Your session ended. Sign in again, then start the import.Authentication failed. Please sign in again.

サインインとパスワードリセットのエラー

認証とアカウント管理はClerkによって提供されているため、これらの文言はWhizi独自のパスワードストアではなく、サインインフローから返されます。

MessageTrigger condition
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.2つの新しいパスワード欄が一致しなかった
Failed to reset password. Please try again.リセットが失敗し、読み取り可能なメッセージが返ってこなかった

Please sign out from other sessions and try again.は、このリストの中で修正方法が別の場所にある唯一のものです。Whiziがサインインしている別のタブやブラウザを閉じてから、ここで再試行してください。

設定ページにも独自のリセットフローのコピーがあり、同じ2つの文言を使います。欄が空の場合は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のレート制限に記載しています。

サインアップとメール確認のエラー

MessageTrigger condition
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.保留中のチェックアウトを伴う登録で、その後トークンを取得できなかった

最後の項目は登録失敗ではありません。アカウントは作成されており、失われたのは保留中のチェックアウトだけです。次に何をすべきかはチェックアウトでカードが拒否された、または支払いに失敗したに記載しています。

「利用できません」という2つの文言は、入力内容が拒否されたのではなく、フォーム送信時に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時間以内に1つのアカウントで3つを超える異なるデバイスまたはセッションキーが検出されると発生します。

通常のマルチデバイス利用は想定内であり、サポートされています。1つのアカウントは複数のデバイスでサインインでき、どちらも同じバックエンドと同じ会話ストアにアクセスします。ユーザーごとのロックによって、アカウントごとに一度に実行できる生成は1つだけに制限されているため、1つのアカウントで2台のデバイスが同時に生成することは決してありません。

これに対する設定はなく、セルフサービスでのリセットもありません。このウィンドウは過去24時間をカバーするため、古いデバイスキーが期限切れになるにつれて自然に解消します。1人で1日に3つを超えるブラウザやデバイスを使っていて、これに繰り返し当たる場合は、回避しようとせずサポートに問い合わせてください。

サインインはできているのに、Whiziがアカウントが見つからないと表示する

User not found.は、セッションの背後にあるusersテーブルの行が削除されている場合に発生します。チェックアウトルートは、呼び出し元の行を読み取れない場合、同じ文言をHTTP 404not_foundとして返します。

アカウント削除は設定内で2段階の確認が必要な操作で、これによりプライバシーポリシーに定める限定的な保持期間の対象となる範囲で、有効なWhiziアカウント記録、同期済みのチャットとメッセージ、アップロードおよび生成されたメディア、保存されたモバイルメモリ、紹介記録、モバイルの権利と利用状況、レート制限の状態、プッシュトークン、Clerkの認証アカウントが削除されます。

何も削除していないのにこれが表示される場合は、Whiziサポートに問い合わせる。これに対するセルフサービスの修復方法はありません。削除の対象範囲全体についてはWhiziがあなたのデータをどう扱うかに記載しています。

ゲストプロフィールと紐付け

ゲスト利用はサインアウト状態での利用です。モバイルアプリではアカウント作成は任意で、作成せずに続行すると、名前もメールアドレスも不要な匿名のデバイス紐付きゲストプロフィールが作られます。これには独自のアクセスエラー一式があります。

MessageTrigger condition
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。生成が実行中の間にプロフィールが紐付けられた

簡単に直せるのは最後の1つだけです。返信が終わるのを待ってから、アカウントを作成してください。残りの3つは、ゲストプロフィールがすでに別のアカウントに紐付けられていることを意味するため、そのアカウントにサインインするか、心当たりがない場合はサポートに問い合わせてください。

これによってゲストのデータが取り残されることはありません。データのエクスポートはゲストセッションでも機能します。ゲストも取り出す価値のある本物のチャットとメモリを保持しているためです。

アカウント自体が何かを実行できない場合

これらはサインイン失敗ではなく、設定内に表示されるアカウントレベルの失敗です。

MessageWhat it is
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}).そのトーストの背後にある生のエラー

データエクスポートは1分あたり5リクエストにレート制限されています。エクスポートはアカウントが保有するすべてのデータを読み取るためです。1分間に5回を超えて再試行すると、その制限によって拒否されます。

公開または開発者向けのAPIはなく、APIキーの発行も個人アクセストークンもありません。すべてのルートはエンドユーザーのセッションとして認証されるため、アクセスが壊れたときにローテーション、失効、貼り付けをするキーは存在しません。スクリプトやサードパーティ製ツールがあなたのアカウントにアクセスできない場合、それが理由です。

チェックリスト
  • セッションエラーは、リクエストに使用可能なトークンが含まれていなかったことを意味します。サインアウトしてから再度サインインしてください
  • 「無効または期限切れのセッショントークン」はHTTP 401でコードはunauthorizedです
  • 単一セッションのメッセージは、もう1つのWhiziタブが先にサインアウトする必要があることを意味します
  • アカウント共有ガードは24時間以内に3つを超えるデバイスまたはセッションキーで発動し、時間が経てば自然に解消します
  • 使い捨てメールドメインはサインアップ時にHTTP 403 disposable_email_blockedとして拒否されます
  • 「アカウントが見つかりません」は、セッションの背後にあるアカウント記録が消失していることを意味します。サポートに問い合わせてください
  • 429はレート制限のウィンドウがリクエストを拒否したことを意味するので、ループで再試行せず待ってください
  • ローテーションすべきAPIキーや個人アクセストークンは存在しません

よくある質問

パスワードをリセットすればInvalid or expired session token.は解消しますか?

いいえ。この文言は、ClerkのJWKSに対するJWT検証が失敗したときに返されるもので、アカウントのパスワードではなく、ブラウザが保持しているトークンに関するものです。パスワードリセットフローには独自の文言があり、Current password is required.Passwords do not match.などがそうです。代わりにサインアウトしてから再度サインインしてください。

Failed to retrieve session token.はWhiziの障害ですか?

これはバックエンドの拒否ではありません。チャット一覧、チャット読み込み、削除、名前変更、アップロードの呼び出しの前にgetTokenが何も返さなかった場合、ウェブサイト自身がこれを発生させます。そのため、HTTPステータスもエラーコードも伴いません。ステータスを伴うバックエンド側の同等品はAuthentication required.Invalid or expired session token.で、どちらもHTTP 401のunauthorizedです。

Failed to fetch session ({status}).は何を意味し、中の数字は何ですか?

これは、セッション呼び出し自体が失敗したときにウェブサイトが投げる生のエラーで、{status}の位置にその呼び出しのHTTPステータスが入ります。読者向けに書かれたメッセージではないため、内部的な文字列のように見えます。サポートに問い合わせる際は、数字をそのまま含めて引用してください。

まったくログインできず、これらのどの文言にも当てはまりません。どうすればいいですか?

サポートに問い合わせ、実際に表示された文言をそのまま貼り付けてください。そのとき何をしていたかも添えてください。これらの文言はそれぞれコード内の1か所に対応しているため、そのままの文言が、サポートにとって最も手掛かりになります。セルフサービスでのアカウントロック解除はありません。