皆さん、こんにちは!
CSVファイルに、バッジを付与するメールアドレスのリストがあります。フォーラムで一致しないグループがあると予想していました(イベント参加者全員のリストを使用しており、全員がフォーラムアカウントを持っているわけではありません)。うまくいったように見えましたが、多くの人が正常に一致したにもかかわらず、バッジを取得するはずの人が取得していませんでした。
彼のメールアドレスのみをCSVで再度テストしましたが、既存のユーザーと一致しないと表示されました。
確認したところ、フォーラムのプライマリメールアドレスはCSVと同じでした。
何が起こっているのか、何かアイデアはありますか? 
数千人規模のリストなので、残念ながら手動で全てを確認することはできません。
「いいね!」 1
ondrej
2
メールアドレスではなく、ユーザー名で試してみてください。
これを1つの例として行うことはできますが、数千件のメールアドレスのリストがあり、ユーザー名がないため、他のすべての人には対応できません。
Noah
4
CSVファイルに目に見えない文字やアーティファクトはありますか?
そうは思いません。データをクリーニングしようとしたのですが、502エラーが発生しました 
Noah
6
ログを確認してみてはどうでしょうか?この件でお役に立てるか分かりませんが、やってみます。
その時のエラーはこれです…私にとっては新しい問題です 
今日はもうログオフしますが、明日デバッグを試すために MaxMindDB に関するこちらのスレッドを見つけました 
「いいね!」 1
また、助けてくれてありがとう!ログがどこにあるのか分からなかったので、学ぶのに良いことです!
これらの警告は、あなたの問題とは関係ありません。MaxMindライセンスキーを設定していない全員がこれらを目にします。他の問題に直面した際に、これらの警告を調査するために時間を無駄にする人がいるため、ミュートしたいと考えていました。しかし、私のコミットは、他のCIテストや開発環境を壊してしまったため、元に戻されました。別の方法でやり直す必要があります。
あなたの問題に関して、関連するコードブロックは次のとおりです。
明白なバグは見当たりませんが、私もRubyプログラマーではありません。私たちのインスタンスで、単一または2つのメールアドレスを単純なカンマ区切りのCSVでテストしましたが、機能しました。LFまたはCRLFのファイル終端を使用しても機能しました。これは一般的なファイルパーサーの問題を排除するためです。CSVファイルはどのように作成していますか?また、メモ帳、nano、viなどの単純なテキストエディタで開いたときに、問題なく表示されますか?
素晴らしい、ご協力ありがとうございます。MaxMindの警告については私もそう思っていました。昨日はログオフする前に簡単にしか読めませんでした。
CSVファイルはSalesforceから生成され、各行に1つのメールアドレスが含まれています。カンマやスペースはありません。基本的なテキストエディタに貼り付けると、まったく問題なく見えます。余分な文字などは一切ありません。新しいCSVで単一のメールアドレスを試しても、同じエラーが発生しました。
厳密に言えば、それは CSV ではありません。CSV は「カンマ区切り値」の略です
。しかし、ファイル拡張子は他の区切り文字でも広く使用されており、さらに重要なことに、改行はデータセット区切り文字としても一般的であるため、1 行に 1 つのメールで機能するはずであり、実際、ここでは機能します。
実際、昨日間違ったテストを行いました。最初に有効なメールを追加し、次に無効なメールを追加しました。無効なメールはサイレントにスキップされると思いましたが、実際には各行の最初の入力のみを解析するため、各行に複数のメール アドレスは許可されません。コードはこれを非常に明確にしています。
line = CSV.parse_line(line).first&.strip
そして、line の値全体を 1 つのメールまたはユーザー名のエントリとして追加して一致させます。
有効なものと無効なものを混ぜて、1 行に複数のメールを追加すると、正常に適用されたバッチの正しい数が表示され、一致できなかったすべてのメールがリストされます。Windows と UNIX の改行の両方で再度テストしました。
しかし、最初のメールが正しいにもかかわらず失敗する場合、マルチラインまたはマルチバリューはとにかくあなたの問題ではありません
。Discourse インスタンスを再構築せずに簡単にデバッグする方法がわかりません。公式の Docker イメージインストーラーを使用していますか?
編集: ロール、画像キャプションは、少なくとも私のドイツ語ロケールのブラウザでは、ドイツ語で KI によって追加されました。非常に詳細で、非常に正確です
。
今日学びました!
ITチームに確認します。彼らがセットアップしたので、Dockerかどうかは正確にはわかりません。
また、少し奇妙なアップデートです…解決したと思いますが、なぜ、どのようにかはわかりません。 
現在のイベントの流れは次のとおりです。
- 元のファイルはSalesforceからダウンロードした.xlsxファイルで、CSVとして保存しました。これはテストユーザーには付与されませんでしたが、他のユーザーには機能しました。
- 新しいCSVでメールを1通だけテストしました。これも機能しませんでした。
- データをクリーンアップするためにいくつかのことを試しました。この時点で502エラーが発生し、メールが送信されなくなりました。おそらく、余分な空のフィールドを追加してしまい、ファイルが大きすぎて解析できなかったため、(新しい) 502エラーが発生したのだと思います。
- 同じCSVからメールを新しいCSVに貼り付けたところ、解決したようです。テストユーザーはバッジを獲得しました!

…そしておそらく最も奇妙なのは、バッジを紛失していたのが彼だけだったことです?!この問題が彼のメールだけに影響し、他の誰も影響を受けなかったというのは考えにくいので、完全には信じられません。違いがあるなら、彼のメールがファイルの一番最初でした。
それ以外では、彼は呪われているだけかもしれませんね? 
「いいね!」 2
解決できてよかったですね。おそらく、ディスコース(Discourse)で「test」や\"test\"のように、入力したのと同じダブルクォーテーション文字でも異なるダブルクォーテーション文字が表示されてしまうような、特殊文字が紛れ込んだのでしょう。
ディスコース(Discourse)のコードでは、このCSVには50,000件のエントリ制限がありますが、これは設定で上書きできる可能性があります。しかし、おそらく50,000行もなかったのではないでしょうか?おそらく、パーサー自体、あるいはウェブサーバーに、それより低いサイズ/文字数の制限があるのかもしれません。
ちなみに、すべてのメールアドレス(そしてこの特定のアドレスを修正したもの)を含む新しいCSVをバルクバッジ(bulk badge)に渡せば、すべてが新しく割り当てられたかのような結果が表示されます。これにより、他のすべてのアドレスが本当に取得できたかどうかを確認し、保証することができます。