Skip to content

failed to load response data request content was evicted from inspector cache

ブラウザの開発者ツールを使用している際に、「failed to load response data request content was evicted from inspector cache」というエラーが表示されることがあります。これは、特に大容量のファイル(15MB以上など)をAPI経由で取得する場合によく発生する問題です。この記事では、このエラーの原因と解決策について詳しく説明します。

問題の原因

このエラーは、ブラウザの開発者ツール(DevTools)が大きなレスポンスデータを一時的に保存するキャッシュの容量制限によって発生します。デフォルトでは、ChromeやFirefoxのDevToolsは大きなレスポンスデータを完全には保持しないため、ファイルサイズが大きい場合(通常10MB以上)にこのエラーが表示されます。

TIP

レスポンスステータスが「200 OK」で正常にデータが送信されているにもかかわらず、DevToolsのネットワークタブでプレビューが表示されない場合は、このキャッシュ制限が原因です。

解決方法

方法1: 開発者ツールの再起動

最も簡単な解決策は、開発者ツールを閉じて再度開くことです。

  1. ブラウザの開発者ツールを完全に閉じる
  2. ページをリフレッシュする
  3. 再度開発者ツールを開く

この方法で一時的なキャッシュ問題が解決することがあります。

方法2: リクエストを新しいウィンドウで開く

DevToolsのネットワークタブで該当するリクエストをダブルクリックすると、レスポンス内容を新しいブラウザウィンドウで確認できます。

方法3: cURLコマンドを使用する

DevToolsからリクエストをcURL形式でエクスポートし、ターミナルで実行する方法です。

  1. DevToolsのネットワークタブで該当リクエストを右クリック
  2. 「Copy」→「Copy as cURL」を選択
  3. ターミナルにコピーしたコマンドを貼り付け、レスポンスをファイルに保存
bash
# 例: レスポンスをresponse.txtに保存
curl 'https://api.example.com/large-file' \
  -H 'Authorization: Bearer token' \
  > response.txt

方法4: Fetch APIをコンソールで使用する

Chrome DevToolsのコンソールを使用して直接レスポンスを取得する方法です。

  1. ネットワークタブでリクエストを右クリック
  2. 「Copy」→「Copy as fetch」を選択
  3. コンソールタブで以下のコードを実行
javascript
// レスポンスをテキストとして取得
var response = await fetch('https://api.example.com/large-file', {
  method: 'GET',
  headers: {
    'Authorization': 'Bearer token'
  }
});
var textData = await response.text();
console.log(textData);

// JSONデータの場合はこちら
var jsonData = await response.json();
console.log(jsonData);

方法5: 外部ツールを使用する

FiddlerやPostmanなどの専門ツールを使用してリクエストを監視・実行する方法です。

  • Fiddler: ブラウザとサーバー間の通信をすべてキャプチャできます
  • Postman: cURLコマンドをインポートしてリクエストを再実行できます

WARNING

PostmanにcURLコマンドをインポートする場合、JSONボディ内の二重引用符が正しく処理されないことがあるため、手動での調整が必要な場合があります。

予防策

大容量のデータを扱うAPIを設計する際は、以下の対策を検討してください。

  • データをチャンク分割して送信する
  • プログレッシブ読み込みを実装する
  • 必要に応じて圧縮を適用する
  • クライアント側でストリーミング処理を実装する

まとめ

「failed to load response data request content was evicted from inspector cache」エラーは、ブラウザの開発者ツールの制限によるもので、実際のデータ転送には影響しません。大きなファイルを扱う場合は、cURLやFetch APIを活用するか、専門的なネットワーク解析ツールを使用することが効果的です。

INFO

この問題はブラウザのパフォーマンス最適化のための設計上の制限であり、実際のアプリケーションの動作には影響しません。本番環境では問題なく大きなファイルを扱うことができます。