ユーザーデータが破損しているようです

特定のユーザーにおいて以下の問題が発生しています:

  • /users/#{username}.json エンドポイントが(API gem を使用して)「URL が利用できません」というエラーで间歇的に失敗する
  • そのユーザーの小さいプロフィール画像が表示されない:

それ以外には、このユーザーに問題がある様子は見当たりません。実際、最近、本番システムのバックアップからデータを転送してステージングサーバーをセットアップしましたが、そのサーバーではこのユーザーに問題はありません。

データ整合性のチェックを行い、データに問題がないか確認する方法はありますか?

SSO に関連する複数の報告が寄せられています。貴サイトは SSO を使用していますか?SSO 呼び出しの構成方法に問題があり、ログイン時にユーザーデータが変更されているようです。

非常に興味深いですね。実は、Procourse Memberships を基盤とした会員システムの開発を進めています。ステージングサーバーでは SSO をオフにして開発を進めており、エラーが発生している本番環境では SSO がオンになっています。幸いなことに(私たちにとって)、数日後に本番リリースを行う際に SSO をオフにすることになっています。そのため、この問題(影響を受けているのは 1 人のユーザーのみ)はそれまで放置しておけます。

他の皆様へ:API gem で受け取ったエラーは以下の通りです。DiscourseApi::NotFoundError, {"errors"=>["The requested URL or resource could not be found."], "error_type"=>"not_found"}。不審に思われるかもしれませんが、呼び出しを試みるたびに発生するわけではなく、250 人のユーザーの中で同じ 1 人に対してのみ、約半数の試行で発生しています。

実はSSOとは関係ないかもしれません。現在SSOは無効化されており、Discourseのログインページに戻っています。設定は以下の通りです:

しかし、なぜか1人のユーザーに対してのみ、以下のエラーが表示されています:

{"errors"=>["The requested URL or resource could not be found."], "error_type"=>"not_found"}

この単一のユーザーに問題があるようです。管理者でユーザーのプロフィールを変更しようとすると、保存されません:

破損したユーザーを修正する方法について、エクスポート/インポートやコピーなどの案はありますか、それとも削除して最初からやり直す必要がありますか?問題のあるレコードを修正するための推奨される手順があるとお考えでしょうか?

解決済み:新しいユーザー名を再入力することでこのユーザーの問題が修正されたようですが、その後、古いユーザー名に戻ると、それ以降は問題なく動作するようになりました。ここで「再入力」としたのは、以前、ユーザー名の末尾に小さな変更を加えようとした試みが失敗したためです。理由は不明ですが、おそらくユーザー名に奇妙な見えない文字が混入していたのでしょうか?また、このユーザーは(現在も)他のユーザー名にはない余分な大文字を含んでおり、例:First_McLastname のようなものです。