報告日:2026年7月31日
対象サービス:LEEEP共通JavaScript SDK
平素より弊社サービス「LEEEP」をご利用いただき、誠にありがとうございます。
2026年7月30日、弊社が提供する共通JavaScript SDKの不具合により、同SDKを導入いただいている一部Webサイトにおいて、ページ内のコンテンツが正常に表示されない事象が発生しました。
お客様およびサイトをご利用の皆様に多大なご迷惑をおかけしましたことを、深くお詫び申し上げます。
原因の特定および復旧対応は完了しており、現在は正常にご利用いただける状態であることを、実際に配信されているファイルの検査により確認済みです。以下に、本事象の詳細および再発防止策をご報告いたします。
弊社が提供するLEEEP共通JavaScript SDKの機能追加に伴うリリースにおいて、SDK内部でのみ使用する補助的な処理が、導入先サイトのグローバル領域(ページ全体で共有される変数・関数の領域)に露出した状態で配信される不具合がありました。
この露出した内部処理の名前が、導入先サイトで使用されている既存のJavaScript(一般的なJavaScriptライブラリを含む)の変数名・関数名と衝突し、サイト側のJavaScript処理が上書きまたは停止される状態が発生しました。
その結果、ページ内の画像やスライダーなどのコンテンツが正常に表示されない、またはページ全体の表示が崩れる事象が発生しました。
障害発生日時:2026年7月30日 16時11分頃
復旧日時 :2026年7月30日 16時56分頃
影響時間 :約45分間
障害発生中に不具合を含むJavaScript SDKを取得した一部Webサイトおよびページが対象です。
特に、SDKの露出した内部処理と同じ名前のグローバル変数・関数を使用しているサイト(広く使われているJavaScriptライブラリを利用しているサイトを含む)において、以下の事象が発生する可能性がありました。
・ページの主要コンテンツが正常に表示されない
・商品画像などの画像コンテンツが表示されない
・ページ内のスライダー等が初期化されない
・ページ全体のレイアウトが崩れる、または白く表示される
・サイト側の一部JavaScript処理が停止する
なお、SDKの読み込みが行われないページ、および名前の衝突が発生しなかったサイトには影響はありません。
4.1 根本原因:配信ファイルのスコープ隔離の不備
弊社SDKの配信用ファイルを生成するビルド工程において、SDK内部の処理を導入先サイトのグローバル領域から隔離する構成(スコープの分離)が、一部のファイルに適用されていませんでした。
この構成上の不備は以前から存在しており、複数の配信ファイルにおいて内部処理がグローバル領域へ露出していましたが、導入先サイトで広く使用されている変数名・関数名と衝突したのは今回が初めてであり、これまで実害として顕在化していませんでした。
今回の機能追加により、上記のファイルに新たな内部補助処理が複数追加されました。スコープ隔離が適用されていないため、これらの処理はグローバル領域に露出した状態で配信用ファイルに出力されました。
さらに、配信用ファイルの生成時に行うファイルサイズ削減処理(minify)によって、これらの内部処理の名前が機械的に1~2文字の短い名前へ変換されました。
短い名前は、導入先サイトや一般的なJavaScriptライブラリが使用する変数名・関数名と一致する可能性が非常に高く、実際に衝突が発生しました。
衝突が発生したサイトでは、サイト側の既存処理が上書きされる、またはJavaScriptの文法エラーによりスクリプト全体の実行が停止することで、ページ表示に必要な処理が失われ、本事象に至りました。
補足しますと、ファイル圧縮処理(minify)自体は一般的な工程であり、それ単独が原因ではありません。スコープ隔離の不備という構成上の問題が根本原因であり、圧縮処理は衝突の発生確率を大きく高める要因として作用したものです。
本事象をリリース前に検出できなかった要因は、以下の2点です。
(1)本番配信物そのものに対する検証の欠如
開発時には、追加した機能そのものに対する単体テストおよび動作確認を実施していました。
しかし、実際に本番へ配信するものと同一の生成済みファイルを対象として、グローバル領域への露出の有無を検査する仕組みや、導入先サイトと同様に既存のJavaScriptが存在するページで読み込ませた状態での検証が、リリース工程に組み込まれていませんでした。
(2)配信ファイル生成工程の自動化・検証体制の不備
配信用ファイルの生成が自動化されたリリースプロセスに統合されておらず、生成物に対する機械的な検査を経ずに本番へ配信され得る状態でした。
時刻 | 対応内容 |
16時11分頃 | 不具合を含むJavaScript SDKの本番配信を開始 |
16時14分頃 | 不具合を含むバージョンへの切り替えが完了 |
16時37分頃 | お客様からのご連絡を受け、事象の確認および調査を開始 |
16時44分頃 | 実際のブラウザ環境で表示不具合およびJavaScriptエラーを再現 |
16時46分頃 | 配信中のSDKと導入先サイトの既存JavaScriptとの名前の衝突を特定 |
16時56分頃 | 本番環境の更新および切り戻しを完了 |
なお、本事象の検知がお客様からのご連絡に依拠し、配信開始から検知まで約26分を要した点は、弊社の監視体制の課題と認識しています。この点への対策は「8.再発防止策」に記載しています。
不具合を含むJavaScript SDKを、原因となった変更を含まない直前の正常バージョンへ切り戻しました。
復旧後、本番で実際に配信されているJavaScriptファイルを取得・検査し、原因となったファイルから当該処理が除去され、グローバル領域への露出が解消されていることを確認しています。
あわせて、他の配信ファイルについても同様の検査を実施した結果、同じ構成上の不備に起因して内部処理が露出しているファイルが他にも存在することを確認しました。
これらは現時点で導入先サイトとの衝突による実害は確認されていませんが、潜在的なリスクであるため、後述の再発防止策(8.1)の対象として速やかに解消します。
解消までの間は、該当ファイルへの変更を厳格に管理し、新たな露出が生じない運用とします。
現在、本事象は解消しており、正常にご利用いただける状態です。
今回の事象を受け、以下の対応を実施します。
外部サイトから直接読み込まれるすべてのJavaScript SDK配信ファイルについて、内部処理を導入先サイトのグローバル領域から完全に隔離する構成へ変更します。
弊社が意図して公開するインターフェースのみを、明示的な許可リストに基づいてグローバル領域へ公開し、それ以外の一切の内部処理が露出しない構成とします。既存の公開インターフェースとの互換性は維持します。
これにより、今後の機能追加やファイル圧縮処理によって内部の変数名・関数名がどのように変換された場合でも、導入先サイトの既存JavaScriptと衝突しない構造となります。
8.1の構成が正しく維持されていることを継続的に保証するため、本番へ配信する生成済みJavaScriptファイルそのものを対象とした自動検証をCIプロセスに組み込みます。
具体的には、以下の内容を自動的に検証します。
配信ファイルのすべての内部処理が隔離されており、許可リストに含まれない名前がグローバル領域へ露出していないこと
(構文解析による機械的な検査)
導入先サイトに近い検証ページで、広く使われている既存のJavaScriptライブラリと共存させた場合に競合しないこと
JavaScriptの実行エラーが発生せず、ブラウザコンソールに予期しないエラーが出力されないこと
検証ページ内のSDKコンテンツが正常に表示されること
SDKを複数回読み込んだ場合にも、ページ表示へ影響しないこと
これらの検証で問題が検出された場合はCIを失敗させ、本番環境へのリリースを自動的に停止します。
確認者の判断だけに依存せず、必要な検証に合格していないJavaScriptが本番へ配信されない仕組みとします。
あわせて、配信ファイルの生成を自動化されたリリースプロセスへ統合し、検証を行ったファイルと本番へ配信するファイルが同一であることを保証します。
個別の開発環境で生成したファイルが、検証を経ずに配信されることのない体制とします。
今回、事象の検知がお客様からのご連絡に依拠していた反省を踏まえ、リリース後に弊社が自ら異常を検知できる体制を整備します。
・本番で配信されているSDKファイルを短い間隔で自動取得し、グローバル領域への露出やファイル内容の異常を機械的に検査する仕組みの導入
・一般的なJavaScriptライブラリと共存させた弊社検証ページ上で、本番配信中のSDKを定期的に自動実行し、JavaScriptエラーや表示異常を検知する外形監視の導入
・SDKのリリース直後に上記の検証を必ず実行し、異常検知時には即座に切り戻しを行う運用手順の整備
なお、本監視は弊社の配信ファイルおよび検証環境を対象とするものです。
導入先サイト固有の環境に依存する事象をすべて事前に検知できるものではありませんが、今回発生したような配信ファイル自体の不具合は、お客様からのご連絡を待たずに検知・復旧できる体制とします。
今回の復旧では、切り戻しの実施に配信システム全体の更新を要する方式となっていました。
これを踏まえ、SDK配信ファイルのバージョン管理と配信方式の見直しを行い、問題発生時には正常な旧バージョンへ即時に切り替えられる構成へ改善します。
これにより、万一同種の事象が発生した場合にも、影響時間を大幅に短縮できる体制とします。
このたびは、弊社サービスの不具合により、お客様およびサイトをご利用の皆様に多大なご迷惑をおかけしましたことを、改めて深くお詫び申し上げます。
今後、同様の事象を発生させないよう、上記の再発防止策を確実に実施し、サービス品質およびリリース管理体制の改善に努めてまいります。