
特定のユーザーだけエラーになる|全体か個別かを切り分ける手順
「○○さんだけ、登録ボタンを押すとエラーになるそうです」
そう連絡をもらって自分の画面で試すと、何事もなく動く。テスト用のアカウントでも動く。もう一度その人の名前を聞き直して、同じ操作をなぞってみても、やっぱり動く。
こういう問い合わせは、障害としては小さく見えるのに、時間だけがどんどん溶けていきます。しかも「自分の手元では再現しない」と伝えると、相手には「信じてもらえていない」と受け取られかねない。技術の問題と、気持ちの問題が同時に来る、なかなかしんどい場面です。
これは、あなたの調べ方が甘いからではありません。個別事象は「原因を探す」より先に「範囲を確かめる」順番でないと、そもそも手がかりが集まらない——ただそれだけの話です。この記事では、その順番を一緒に整理していきます。
結論:やることは3つです。①「本当にその人だけか」を先に確かめる(全体障害の入口かもしれません)、②その人と、動いている人との「違い」を5つの層に分けて並べる(権限・データ・端末・回線・時間)、③自分の手元で再現しようとせず、相手の環境からしか取れない情報を先にもらう(正確な時刻・操作・画面)。原因の当てずっぽうは、この3つが終わってからで間に合います。
なお、環境やシステム構成によって見る場所は変わります。ここで挙げるのは「順番の型」です。自分の現場のログの置き場所に置き換えながら読んでみてください。
なぜ「その人だけ」は調べにくいのか
腕の問題ではなく、構造的に難しい要素がそろっています。
- 手元で再現しない:再現できないと、いつもの「動かして確かめる」進め方が最初から使えません。
- ログの中で、その人が埋もれる:全体のアクセスログには何万行もあり、どれがその人の操作か分からない。時刻も「昼ごろ」くらいしか分からない。
- 相手を疑う空気になりやすい:「操作を間違えていませんか」と聞こえてしまう質問は、相手を身構えさせます。すると情報が出てこなくなり、さらに調べにくくなる。
- 小さい扱いをされがち:1人だけの事象は優先度が下がりやすく、後回しにしているうちに「実は全体の予兆だった」と分かることもあります。
だからこそ、最初の一手は原因究明ではありません。範囲の確定です。ここを飛ばすと、たまたま最初に思いついた仮説を延々と追いかけることになります。
ステップ1:本当に「その人だけ」かを確かめる

「その人だけ」というのは、たいてい報告が1件しか来ていないという意味です。実際にその人だけとは限りません。まずここを確かめます。
- 全体:みんな同じ症状 → 個別事象ではありません。通常の障害対応に切り替えます(「サイトが重い」の切り分け手順などが土台になります)。
- 一部:同じ部署・同じ権限・同じ拠点の人が同じ症状 → 共通点がすでに手がかりです。ステップ3の「違いの5層」で一気に絞れます。
- ひとり:ほかの人は問題なし → ここで初めて、個別事象として追いかけます。
確かめ方は、難しいことをしなくて大丈夫です。
- エラーログを、その時間帯だけ見る。同じエラーが他のユーザーでも出ていないかを数えます。
- 報告者の近くの人に1人だけ聞いてもらう。「同じ操作をして同じことが起きるか、隣の方に試していただけますか」と依頼すれば、数分で範囲が分かります。
- 問い合わせ履歴を検索する。同じ症状が過去に別の人から来ていないか。問い合わせ対応を「調査ログ」として資産にする方法で記録が残っていれば、ここが一番速い場所になります。
ログで同じエラーの発生件数と、出ているユーザーの広がりを見るなら、こんな形で足ります(パスやログ形式は自分の環境に合わせてください)。
# 当該時間帯のエラーを抜き出して、件数を数える
grep "2026-08-16 14:" /var/log/app/error.log | grep -c "登録処理"
# 同じエラーが出ているユーザーIDを一覧にして、何人いるかを見る
grep "2026-08-16 14:" /var/log/app/error.log \
| grep -o 'user_id=[0-9]*' \
| sort | uniq -c | sort -rn | head
ここで「実は5人出ていた」と分かることは、決して珍しくありません。1人からの報告は、氷山の見えている部分かもしれないという前提で見ておくと、後の判断が変わります。
ステップ2:時刻と操作を特定して、ログをその人に絞る
範囲が「ひとり」だと確定したら、次はログの中からその人を見つけます。ここで必要なのは、推測ではなく相手からの3点セットです。
- 正確な日時(「昼ごろ」ではなく「14時5分くらい」まで)
- 何の画面で、どのボタンを押したか
- 画面に何と出たか(エラーメッセージ、画面の状態)
この3つがそろうと、ログの絞り込みは一気に楽になります。逆にここが曖昧なままだと、何万行を眺めても手がかりは出てきません。
# ユーザーIDが分かるなら、まずそれで絞る
grep "user_id=1234" /var/log/app/app.log | grep "2026-08-16 14:"
# アクセスログを、相手のIPアドレスと時間帯で絞る
grep "203.0.113.10" /var/log/nginx/access.log | grep "16/Aug/2026:14:"
# 見つけた1行の前後を、流れごと見る(-B 前 / -A 後の行数)
grep -n -B 20 -A 20 "処理対象のリクエストID" /var/log/app/app.log
エラーの1行だけを見ても、たいてい原因は分かりません。その前後を「流れ」として読むのがコツです。絞り込みのやり方は大量ログからエラーを絞り込む|grep・tailの実務術にまとめてあります。アプリのスタックトレースが取れているなら、スタックトレースの読み方と合わせて読むと、どの層で落ちているかまで見えてきます。
なお、相手からスクリーンショットや操作ログをもらうときは、個人情報や取引先の情報が写り込むことがあります。調査に必要な範囲だけ受け取り、調査が終わったら保管ルールに沿って扱う——このひと手間を先に決めておくと、後から困りません(個人データの取り扱いについては個人情報保護委員会の情報が参考になります)。
ステップ3:「違い」を5つの層に分けて並べる
ここからが本番です。動いている人と、動かない人。その2人の違いを、思いつく順ではなく層ごとに並べます。順番に見ていけるようになるだけで、迷子になりません。
- 権限・アカウント:ロール、所属、有効期限、初回ログインかどうか、パスワード有効期限切れ。「管理者だけ通る」「一般ユーザーだと落ちる」は定番です(退職者アカウントの棚卸しと権限の最小化で権限の整理をしていれば、ここは早く見つかります)。
- データ:その人が扱っているデータそのもの。件数が極端に多い、名前に特殊な文字(旧字体・環境依存文字・絵文字)が入っている、必須のはずの項目が空、日付が未来や過去に飛んでいる。「その人のデータだけが特殊」というのは、かなりよくある原因です。文字が絡む症状なら文字化けの切り分けも合わせて見てください。
- 端末・ブラウザ:OSやブラウザのバージョン、拡張機能、画面サイズ、社内標準ではない端末、スマホからのアクセス。古いブラウザだけで特定の機能が動かない、というのは今も普通に起きます。
- 回線・経路:社内プロキシ経由か自宅からか、VPN、社内からのIP制限、通信の遅い回線。管理画面にアクセス制限をかけている場合はここが直撃します(管理画面のアクセス制限)。
- 時間・状態:いつも同じ時刻に起きるのか、初回だけか、ログインしっぱなしのセッションが古いのか、ブラウザに残ったキャッシュか。「一度ログアウトすると直る」なら、この層が濃厚です(キャッシュが原因の「直したのに直らない」)。
書き出すときは、表の形にしてしまうのが早いです。
| 層 | 動く人 | 動かない人 | 差はあるか |
|---|---|---|---|
| 権限・アカウント | 一般ユーザー | 一般ユーザー | なし |
| データ | 取引先3件 | 取引先1,200件 | あり |
| 端末・ブラウザ | Chrome最新 | Chrome最新 | なし |
| 回線・経路 | 社内 | 社内 | なし |
| 時間・状態 | 随時 | 随時 | なし |
差が1つに絞れたら、そこが調査の入口です。差が複数出ても構いません。安く試せるものから順に消していくのが次のステップです。
ステップ4:安く試せるところから消していく
原因の可能性を、いきなり深いところから掘らないでください。手間がかからず、相手に負担をかけない確認から先に済ませます。
- 別のブラウザ、またはプライベートウィンドウで試してもらう(キャッシュ・セッション・拡張機能を一度に切り分けられます。数十秒で終わります)
- 別の端末・別の回線から試してもらう(スマホのテザリングなど。端末と経路がまとめて外れます)
- 同じ権限のテスト用アカウントで、自分が試す(権限の層を確かめる)
- 相手のデータに近い状態を、検証環境で作って試す(件数を増やす、同じ特殊文字を入れる。本番データはそのまま持ち出さず、検証用に加工した形で試すのが安全です)
- 相手の操作を、画面共有で一緒になぞる(ここまでで分からなければ、これが一番速い。5分の同席が、2時間の調査を省くことがあります)
1と2だけで切り分けがついてしまう案件は、思っているより多いものです。まずここから声をかけてみてください。
具体例:よくある3つのパターン
- データ起因:「その人だけ一覧画面がタイムアウトする」。調べると、その人の担当だけ取引先が1,200件あり、他の人は数十件。件数の多さで処理が間に合っていない、という筋です。この場合、直すのはユーザーではなくシステム側(ページング・上限・インデックス)です。
- 端末・回線起因:「その人だけファイルがアップロードできない」。実は自宅の回線からVPN経由でつないでいて、大きなファイルが途中で切れていた。社内からだと問題なく通る。ここは疎通確認の切り分けの出番です。
- セッション・キャッシュ起因:「その人だけ、更新した内容が古いまま表示される」。ブラウザに古いJavaScriptが残っていて、画面だけ以前の作りのまま動いていた。ログアウトと再読み込みで直りますが、再発するなら配信側の設定を見直すサインです。
どのパターンにも共通するのは、原因は「その人」ではなく、たいていシステム側の前提の外にあるということです。ここを見誤ると、無意識に相手を責める説明になってしまいます。
影響:この順番を持っていると、何が変わるか
- 見落とし障害を拾える:範囲確認を先にやることで、「1人の報告に見えた全体障害」を早い段階で捕まえられます。
- 調査時間が読めるようになる:層で並べておけば、「あと何を確かめれば終わるか」が自分にも相手にも見えます。終わりの見えない調査は、精神的な負担が大きいものです。
- 相手との関係がこじれない:「操作ミスでは」と疑うのではなく、「動く人との違いを一緒に探す」形になります。同じ確認をしていても、伝わり方がまるで変わります。
- 次に活きる:切り分けの記録が残れば、同じ症状の2件目は5分で片付きます。
調査が長引きそうなときは、途中で相談していい合図でもあります。ひとりで抱え込む必要はありません。
そのまま使える:相手に送る確認テンプレート
最初の返信で、これを送っておくと調査が一気に進みます。責めないトーンのまま、必要な情報が集まる形にしてあります。
お世話になっております。ご連絡ありがとうございます。
状況を正確につかみたいので、いくつか教えていただけますでしょうか。
■ 起きたこと
1. 発生した日時(できるだけ細かく:例 8/16 14時05分ごろ)
2. どの画面で、どの操作をされたか
3. 画面に表示された文言(お手数ですが画面の写真でも助かります)
4. 直前に何か操作されていましたか(保存・検索・添付など)
■ 切り分けのお願い(どちらも1分ほどで終わります)
5. 別のブラウザ、またはプライベートウィンドウで同じ操作をすると
どうなりますか
6. お近くの方が同じ操作をされた場合、同じことが起きますか
■ 環境について
7. 社内のパソコンからでしょうか、社外(自宅・外出先)からでしょうか
8. お使いのブラウザ(Chrome / Edge / Safari など)
こちらでも同時に調査を進めております。
お手数をおかけしますが、よろしくお願いいたします。
「再現しませんでした」だけを返すのは避けたいところです。再現しないという事実も、こちらの調査結果のひとつとして、「私の環境と◯◯さんの環境で違うところを探しています」と伝えると、相手も一緒に探す側に回ってくれます。
明日やること
いま抱えている「その人だけ」の案件があれば、この順でどうぞ。
- 範囲を確かめる。同じ症状の人がほかにいないか、ログか問い合わせ履歴で数える。
- 3点セットをもらう。正確な時刻・操作・画面の文言。上のテンプレートをそのまま使って構いません。
- ログをその人に絞る。ユーザーIDかIPアドレスと、時間帯で絞り込む。前後20行を流れで読む。
- 違いを5層で書き出す。権限・データ・端末・回線・時間。表にして、差のある行に印をつける。
- 安いものから試す。別ブラウザ、別回線、テストアカウント。ここまでで多くは形が見えます。
- 分かったことを1行残す。原因と決め手を書いておけば、次の1件が早くなります。
全部を今日やる必要はありません。1の「範囲を確かめる」だけでも、調査の景色はずいぶん変わります。
「その人だけ」切り分けチェックリスト
- 報告が1件でも「本当に1人か」をログか周囲への確認で調べたか
- 同じエラーが他ユーザーにも出ていないか、件数で確かめたか
- 発生日時を「時分」まで、操作内容を画面名まで聞けているか
- エラーの1行だけでなく、前後の流れとして読んだか
- 権限・データ・端末・回線・時間の5層で違いを並べたか
- 別ブラウザ/別回線という「安い確認」を先に試したか
- 相手のデータを扱うとき、必要な範囲だけ受け取る形にしたか
- 「再現しない」で終わらせず、違いを探している旨を伝えたか
- 分かった原因と決め手を、次に引ける場所に残したか
全部そろわなくても大丈夫です。上から3つできていれば、調査はもう前に進んでいます。
よければ、こちらも
- 「動きがおかしい」の切り分け|最初に聞く7つの質問リスト:相手から状況を引き出す質問を、そのまま使える形で。
- 再現しないバグの調査の進め方:手元で再現できないまま原因に近づくための考え方。
- 大量ログからエラーを絞り込む|grep・tailの実務術:ログの中から「その1行」を見つけるために。
- 問い合わせ対応を「調査ログ」として資産にする方法:今回の1件を、次の5分に変えるために。

「その人だけ」の不具合は、直っても誰にも気づかれない仕事です。全体障害のように騒がれることもなく、静かに報告が閉じるだけ。それでも、その1人は毎日その画面で仕事をしていて、あなたが動いたおかげで明日から普通に使えるようになります。
再現しないのは、あなたの見落としではありません。まだ違いが見つかっていないだけです。順番に並べていけば、たいていどこかに差が出てきます。明日は、範囲を数えるところからで十分です。
ほかの実務ヒントは記事一覧からどうぞ。保守運用の小さな備えを、メールでも少しずつお届けしています。