Shadowrocketのサブスクリプション更新に失敗したときの対処法|手動更新とアプリ起動時の自動更新

まず手動で更新し、保存済みのサブスクリプションURLから解析可能な内容を取得できるか確認します。リンク、ネットワーク、形式の順に原因を切り分けましょう。アプリ起動時の自動更新は日常的な管理に便利ですが、トラブルの原因確認に代わるものではありません。

この記事の要点

自分のサブスクリプションをShadowrocketに読み込み済みのiPhone、iPadユーザー向けです。Homeでの手動更新、Settings → Subscribeでのアプリ起動時更新の設定、更新失敗時にリンク切れ・リクエスト失敗・解析できない内容を見分ける方法を説明します。判断の基準は更新結果であり、接続スイッチの状態ではありません。

まず確認:失敗したのはサブスクリプションの取得か、既存設定の利用か

サブスクリプションの更新は独立した処理です。Shadowrocketが保存済みのURLにリクエストを送り、返された内容を受信・解析して、Homeの項目を更新します。Homeに以前の項目が残っていても、それは前回正常に読み込んだデータが端末に保存されていることを示すだけで、今回のリクエストが成功した証拠にはなりません。一方、更新に失敗しても、既存の接続がすべて直ちに使えなくなるとは限りません。両者は分けて確認してください。

保存済みURLを読み込むネットワークリクエストを送信応答を受信サブスクリプション内容を解析既存の項目を更新

確認を始める前に、失敗したサブスクリプションと更新時に表示されたメッセージを記録してください。複数登録している場合は、グループごとに操作します。ひとつの結果だけで、すべてのURLの状態を判断しないでください。更新前後で項目数や更新時刻も比べましょう。メッセージが消えて内容が変わらない場合、提供元が同じデータを返した可能性があります。エラーが表示され、以前の項目が残っている場合は、今回の更新で利用可能な新しい内容を取得できていません。

確認の順序:まず更新結果を確認

対象のサブスクリプション、表示されたメッセージ、以前の項目が残っているかを確認してから、接続状態を調べます。Homeの接続スイッチを何度も切り替えても、サブスクリプションの更新テストにはなりません。

手動更新:グループごとに更新し、保存済みURLを確認

手動更新は、操作ごとに結果をすぐ確認できるため、最初の原因切り分けに適しています。以下は、利用者が自分のサブスクリプションURLを持っていることを前提とした手順です。例として示す https://example.com/sub?token=xxxx はURLの構造を説明するためのもので、利用可能なサブスクリプションではありません。実際に保存済みのURLを使い、すべての文字列が含まれているか確認してください。

  1. サブスクリプションを探す

    ShadowrocketのHomeを開き、以前に読み込んだSubscribe項目を探します。Homeに複数のグループがある場合は、更新するグループを先に確認してください。別のグループで成功しても、問題が解決したとは限りません。

  2. 手動で更新

    Homeでサブスクリプションを下に引いて更新し、リクエストが完了するまで待ちます。メッセージが表示される前に何度も操作しないでください。画面に表示されたエラー文を記録し、更新前後の項目を比べます。

  3. URLを確認

    対象のサブスクリプションの編集画面を開き、TypeがSubscribeになっていることと、保存済みのURLを確認します。ドメイン、パス、tokenなどのクエリパラメータが欠けていないか、期限切れでないか、余分な空白が入っていないかを重点的に確認してください。確認後に保存し、Homeに戻ってもう一度更新します。

  4. 結果を記録

    失敗したのが1つのグループだけなら、そのURLと応答内容を優先して確認します。すべてのサブスクリプションがタイムアウトする場合は、現在のネットワークを確認してください。エラー文を記録しておくと、自分が利用しているサービスの提供元にURLの状態を問い合わせる際に役立ちます。

まだサブスクリプションを読み込んでいない場合は、Home右上の「+」→ TypeでSubscribeを選び、手元にあるURLを入力して保存してから、初回の更新を行います。URLをコピーするときは、疑問符以降のパラメータもすべて含めてください。例の ?token=xxxx もURLの一部です。省略するとアクセスを拒否されたり、意図しない内容が返されたりする場合があります。実際のURLや認証情報を公開しないでください。

アプリ起動時の自動更新:設定と利用条件

アプリ起動時の更新は、Shadowrocketを開いたときにサブスクリプションの新しい内容を取得する機能です。バックグラウンドで継続的に更新する機能ではなく、無効なURLを修復するものでもありません。まず手動更新が成功することを確認してから、Settings → Subscribeでアプリ起動時の更新設定を確認します。画面にUpdate on Openが表示される場合は、必要に応じて有効にしてください。利用できる項目はアプリ内の画面で確認してください。

  1. まずURLを確認

    Homeに戻り、対象のサブスクリプションを手動で更新します。エラーが表示されず、内容が正常に表示されることを確認してください。手動更新に失敗する場合は、下記の3つの原因を順に確認します。自動更新を有効にして何度も再試行するだけでは解決しません。

  2. 設定を確認

    Settings → Subscribeを開き、Update on Openなど、アプリ起動時の更新に関する項目を確認します。変更したらHomeに戻ります。複数のサブスクリプションを管理している場合は、グループごとの更新結果も確認してください。

  3. もう一度確認

    次にアプリを開いたら、ネットワークリクエストの完了を待ってから、サブスクリプションの内容や更新メッセージを確認します。アプリを開いただけで、サーバーから必ず新しい項目が返されるわけではありません。提供元の内容に変更がなければ、リストは変わらないことがあります。

自分のサブスクリプションURLに既存のプロキシ接続経由でしかアクセスできない場合は、Settings → SubscribeでUpdate via Proxyを確認し、現在の接続が利用できるかも含めてテストしてください。この設定で変わるのは更新リクエストの通信経路です。無効なURLを置き換えたり、解析できない応答をサブスクリプションに変換したりするものではありません。テストでは一度に1つの条件だけを変更します。まず現在の経路で試し、次に設定を切り替えて手動更新し、2回の結果を比較してください。

設定の基本:自動更新は手動更新の成功を確認してから

手動更新で内容を取得・解析できることを確認してから、アプリ起動時の更新を有効にします。手動更新に失敗した場合は、エラーメッセージを記録し、URL、ネットワーク、形式を順に確認してください。

更新に失敗する3つの原因と対処法

エラーメッセージは、リクエストの段階やサーバーの応答によって異なります。以下のカードに記載した英語の文言やステータスコードは、表示される可能性がある例です。実際の端末に表示された内容を確認してください。同じ「Failed to load subscription」でも原因は複数考えられるため、このメッセージだけでURLの期限切れと判断することはできません。

エラー:HTTP 403

原因と対処法:サーバーが現在のリクエストを拒否しています。URLの認証情報やアクセス制限が関係している可能性があります。サブスクリプションURLのパラメータがすべて含まれているか確認し、自分が利用しているサービスの提供元にアクセス条件を問い合わせてください。認証情報を推測して変更しないでください。

エラー:HTTP 404

原因と対処法:リクエスト先に該当するリソースがありません。ドメインとパスが保存済みのURLと一致しているか確認してください。元のURLが変更されている場合は、自分が利用しているサービスの提供元に現在有効なURLを確認してから更新します。

エラー:The request timed out.

原因と対処法:制限時間内にリクエストが完了しませんでした。まず、現在のWi-FiまたはCellularでインターネットにアクセスできるか確認します。そのうえで、Settings → Subscribe → Update via Proxyを使った手動更新と、直接接続での結果を比べてください。

エラー:Failed to load subscription

原因と対処法:今回のサブスクリプション内容を取得または利用できませんでした。まずURLとネットワークを確認します。リクエストが完了しても利用可能な項目がない場合は、自分が利用しているサービスの提供元に、応答が解析可能なサブスクリプション形式か確認してください。

URLが無効:まずアドレス、次にアクセス権を確認

1つのサブスクリプションだけ更新に失敗し、特に最近保存済みURLが変更された場合は、まずURLを確認します。ドメインのつづり、末尾のパス、クエリパラメータがサーバーの応答に影響することがあります。HTTP 403ではアクセス条件、HTTP 404ではパスを優先して確認します。ただし、サーバーによっては別のステータスで同じ問題を示す場合もあります。まだ使える古い項目を削除してURLをテストせず、状態を保ったまま自分が利用しているサービスの提供元に確認してください。

ネットワークに接続できない:端末の接続とリクエスト経路を切り分ける

Wi-FiまたはCellularが接続済みでも、サブスクリプションURLに必ずアクセスできるとは限りません。まず端末から通常どおりインターネットにアクセスできることを確認し、同じネットワークでHomeから手動更新を再試行します。すべてのサブスクリプションがタイムアウトする場合は現在のネットワークを確認し、特定のURLだけがタイムアウトする場合は、そのURLのアクセス条件を確認してください。Update via Proxyを変更する前に、選択中の接続自体が使えることを確認します。そうでなければ、更新リクエストも失敗する可能性があります。

形式を解析できない:ファイル名ではなく応答内容を確認

サーバーへのリクエストが成功しても、Shadowrocketで解析できるサブスクリプションデータではなく、ログインページ、エラーの説明、空の内容が返されることがあります。更新後に項目が追加されない、または読み込みに失敗する場合があります。このとき、Global RoutingのProxy、Direct、Configを何度切り替えても、サーバーから返される内容は修正されません。TypeがSubscribeになっていることを確認し、自分が利用しているサービスの提供元に、URLから実際に返される内容の形式を確認してください。

よくある質問:更新後も期待した変化がない

下に引いて更新してもエラーはないのに、項目が変わらない場合は?

まず、リスト内の別グループではなく、対象のサブスクリプションを更新したか確認します。次に、サービスの提供元が現在配信している内容と比較してください。リモート側の項目に変更がなければ、更新に成功してもリストに項目が自動で追加されるわけではありません。項目数が変わらないことだけで、失敗と判断しないでください。

アプリ起動時の更新を有効にしているのに、手動で試す必要があるのはなぜ?

手動更新なら、1回の操作とその結果を対応させて確認できます。Homeに戻り、対象のサブスクリプションを下に引いて更新し、エラー文を記録してください。失敗する場合は、次にアプリを開くのを待つのではなく、URL、ネットワーク経路、応答内容を順に確認します。

Update via Proxyを有効にしてもタイムアウトする場合は?

まずHomeで現在選択されている接続が使えることを確認し、次にSettings → Subscribeで該当項目の状態を確認します。どちらのリクエスト経路でもタイムアウトする場合は、時刻とエラーメッセージを記録し、自分が利用しているサービスの提供元にサブスクリプションURLのアクセス条件を確認してください。

URLを開けるのに、読み込みエラーが表示される場合は?

Webページを受信できても、解析可能なサブスクリプションを受信できたとは限りません。TypeがSubscribeか、URLがすべて含まれているか確認し、自分が利用しているサービスの提供元にURLの応答内容を確認してください。ログインページやエラーページは、サブスクリプション項目として読み込めません。

更新に失敗すると、以前の項目は削除されますか?

まずHomeで既存の項目が表示されているか確認し、今回の失敗で設定全体が書き換わったと決めつけないでください。更新前後の実際の変化を記録し、新しいURLが使えると確認できるまでは、古いサブスクリプションを削除して原因を調べることは避けてください。

原因を確認したら、手動更新をもう一度行い、対象のサブスクリプションから正常に内容を取得できることを確認してから、次回アプリを開いたときの更新結果を確認してください。サブスクリプションは利用者自身が契約するサービスの提供元から提供されます。Shadowrocketは、こうした設定を読み込んで利用するためのAppleプラットフォーム向け有料クライアントです。アプリの買い切り料金に回線プランは含まれません。iPhone、iPadのシステム要件はApp Storeの掲載内容をご確認ください。

App Storeで正規版を確認