---
title: "Flutter SDKのエラーハンドリング"
description: "Flutter SDKのエラーハンドリング。"
---

SDKが返すエラーはすべて `AdaptyErrorCode` として返されます。以下はその例です：
:::tip
**デバッグを始める前に詳細ログを有効にしてください。** ほとんどの `AdaptyError` は、StoreKit、Play Billing、ネットワーク、またはバックエンドのエラーをラップしています。詳細ログを有効にすると（`await Adapty().setLogLevel(AdaptyLogLevel.verbose)` — [ロギング](sdk-installation-flutter#logging)を参照）、ラップされたエラーがコンソールに出力され、実際の原因が分かります。
:::

:::important
これらの解決策で問題が解決しない場合は、サポートに連絡する前に[その他の問題](#other-issues)を参照して、より効率的にサポートできるよう手順を確認してください。
:::
```javascript showLineNumbers
    try {
      final result = await adapty.makePurchase(product: product);
    } on AdaptyError catch (adaptyError) {
      if (adaptyError.code == AdaptyErrorCode.paymentCancelled) {
        // Cancelled
      }
    } catch (e) {
    }
```

## システムの StoreKit コード \{#system-storekit-codes\}
| エラー | コード | 解決策 |
|-----|----|-----------|
| [unknown](https://developer.apple.com/documentation/storekit/skerror/code/unknown)                                                         | 0    | 不明または予期しないエラーが発生したことを示すエラーコードです。<br/> 再試行するか、[その他の問題](#other-issues)セクションをご参照ください。                                                                                                                                                                                                                                                                                                                                   |
| [clientInvalid](https://developer.apple.com/documentation/storekit/skerror/code/clientinvalid)                                             | 1    | クライアントが試みた操作を実行できないことを示すエラーコードです。                                                                                                                                                                                                                                                                                                                                                           |
| [paymentCancelled](https://developer.apple.com/documentation/storekit/skerror/code/paymentcancelled)                                       | 2    | <p>ユーザーが支払いリクエストをキャンセルしたことを示すエラーコードです。</p><p>対応は不要ですが、ビジネスロジックの観点から、ユーザーに割引を提示したり、後で再通知したりすることができます。</p>                                                                                                                                                                                                                                             |
| [paymentInvalid](https://developer.apple.com/documentation/storekit/skerror/code/paymentinvalid)                                           | 3    | 支払いパラメータのいずれかが App Store に認識されなかったことを示すエラーです。                                                                                                                                                                                                                                                                                                                                                        |
| [paymentNotAllowed](https://developer.apple.com/documentation/storekit/skerror/code/paymentnotallowed)                                     | 4    | ユーザーが支払いの承認を許可されていないことを示すエラーコードです。                                                                                                                                                                                                                                                                                                                                                                       |
| [storeProductNotAvailable](https://developer.apple.com/documentation/storekit/skerror/code/storeproductnotavailable)                       | 5    | リクエストされたプロダクトがストアで入手できないことを示すエラーコードです。<br/> アプリを再インストールしてみてください。                                                                                                                                                                                                                                                                                                                               |
| [cloudServicePermissionDenied](https://developer.apple.com/documentation/storekit/skerror/code/cloudservicepermissiondenied)               | 6    | ユーザーがクラウドサービス情報へのアクセスを許可していないことを示すエラーコードです。                                                                                                                                                                                                                                                                                                                                                        |
| [cloudServiceNetworkConnectionFailed](https://developer.apple.com/documentation/storekit/skerror/code/cloudservicenetworkconnectionfailed) | 7    | デバイスがネットワークに接続できなかったことを示すエラーコードです。                                                                                                                                                                                                                                                                                                                                                                         |
| [cloudServiceRevoked](https://developer.apple.com/documentation/storekit/skerror/code/cloudservicerevoked/)                                | 8    | ユーザーがこのクラウドサービスの使用許可を取り消したことを示すエラーコードです。                                                                                                                                                                                                                                                                                                                                                           |
| [privacyAcknowledgementRequired](https://developer.apple.com/documentation/storekit/skerror/code/privacyacknowledgementrequired)           | 9    | ユーザーがまだ Apple のプライバシーポリシーに同意していないことを示すエラーコードです。                                                                                                                                                                                                                                                                                                                                                            |
| [unauthorizedRequestData](https://developer.apple.com/documentation/storekit/skerror/code/unauthorizedrequestdata)                         | 10   | アプリが、必要な権限を持たないプロパティを使用しようとしていることを示すエラーコードです。                                                                                                                                                                                                                                                                                                                                                         |
| [invalidOfferIdentifier](https://developer.apple.com/documentation/storekit/skerror/code/invalidofferidentifier)                           | 11   | <p>オファーの[`identifier`](https://developer.apple.com/documentation/storekit/skpaymentdiscount/identifier)が有効ではありません。たとえば、App Store でその識別子のオファーが設定されていないか、オファーが取り消されている場合などです。</p><p>AppStore Connect で必要なオファーを設定し、有効なオファー識別子を渡していることを確認してください。</p>                                                                                                                                                                           |
| [invalidSignature](https://developer.apple.com/documentation/storekit/skerror/code/invalidsignature)                                       | 12   | 支払い割引の署名が有効でないことを示すエラーコードです。                                                                                                                                                                                                                                                                                                                                                                    |
| [missingOfferParams](https://developer.apple.com/documentation/storekit/skerror/code/missingofferparams)                                   | 13   | 支払い割引のパラメータが不足していることを示すエラーコードです。                                                                                                                                                                                                                                                                                                                                                                        |
| [invalidOfferPrice](https://developer.apple.com/documentation/storekit/skerror/code/invalidofferprice/)                                    | 14   | App Store Connect で指定した価格が無効になったことを示すエラーコードです。オファーは常に割引価格である必要があります。                                                                                                                                                                                                                                                                                                                    |
## カスタム Android コード \{#custom-android-codes\}
| エラー | コード | 解決策 |
|-----|----|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| adaptyNotInitialized | 20 | `Adapty.activate` メソッドで Adapty SDK を正しく設定する必要があります。設定方法は [Flutter 向けのガイド]( sdk-installation-flutter#activate-adapty-module-of-adapty-sdk) をご覧ください。 |
| productNotFound | 22 | 購入しようとしたプロダクトがストアで利用できないことを示すエラーです。 |
| invalidJson | 23 | ペイウォールの JSON が無効です。Adapty ダッシュボードで修正してください。修正方法の詳細は [リモートコンフィグでペイウォールをカスタマイズする](customize-paywall-with-remote-config) をご覧ください。 |
| currentSubscriptionToUpdateNotFoundInHistory | 24 | 更新が必要な元のサブスクリプションが見つかりません。 |
| pendingPurchase | 25 | 購入の状態が「購入済み」ではなく「保留中」であることを示すエラーです。詳細は Android デベロッパードキュメントの [保留中のトランザクションの処理](https://developer.android.com/google/play/billing/integrate#pending) ページをご覧ください。 |
| billingServiceTimeout | 97 | Google Play が応答する前にリクエストが最大タイムアウトに達したことを示すエラーです。Play Billing Library の呼び出しでリクエストされたアクションの実行に遅延が生じた場合などに発生することがあります。 |
| featureNotSupported | 98 | 現在のデバイスの Play Store では、リクエストされた機能がサポートされていません。 |
| billingServiceDisconnected | 99 | クライアントアプリと Google Play ストアサービス間の `BillingClient` 経由の接続が切断されたことを示す致命的なエラーです。 |
| billingServiceUnavailable | 102 | Google Play Billing サービスが現在利用できないことを示す一時的なエラーです。ほとんどの場合、クライアントデバイスと Google Play Billing サービス間のどこかでネットワーク接続の問題が発生していることを意味します。 |
| billingUnavailable | 103 | <p>購入処理中にユーザーの課金エラーが発生したことを示すエラーです。発生する例としては次のようなものがあります：</p><p></p><p>1\. ユーザーのデバイスの Play Store アプリが古い。</p><p>2. ユーザーがサポートされていない国にいる。</p><p>3. ユーザーがエンタープライズユーザーであり、エンタープライズ管理者が購入を無効にしている。</p><p>4. Google Play がユーザーの支払い方法に課金できない（例：クレジットカードの有効期限切れ）。</p><p>5. ユーザーが Play Store アプリにログインしていない。</p> |
| developerError | 105 | API の使い方が正しくないことを示す致命的なエラーです。 |
| billingError | 106 | Google Play 自体の内部問題を示す致命的なエラーです。 |
| itemAlreadyOwned | 107 | 消耗型アイテムはすでに購入済みです。 |
| itemNotOwned | 108 | アイテムに対してリクエストされたアクションが失敗したことを示すエラーです。 |
## カスタム StoreKit コード \{#custom-storekit-codes\}
| エラー                                                                                               | コード | 解決策                                                                                                                                                                                                                                                                                                                                                                                                                                         |
|-----------------------------------------------------------------------------------------------------|------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| noProductIDsFound                                                                                   | 1000 | <p>このエラーは、ペイウォールでリクエストしたプロダクトがApp Storeに登録されているにもかかわらず、購入可能な状態にないことを示します。このエラーには `InvalidProductIdentifiers` 警告が伴う場合があります。警告のみでエラーが発生していない場合は無視してください。</p><p>このエラーが発生している場合は、[コード1000 `noProductIDsFound` エラーの修正方法](InvalidProductIdentifiers-flutter)セクションの手順に従ってください。</p> |
| noProductsFound                                                                                     | 1001 | このエラーは、購入しようとしたプロダクトがストアで利用できないことを示します。                                                                                                                                                                                                                                                                                                                                                         |
| productRequestFailed                                                                                | 1002 | 現時点で利用可能なプロダクトを取得できません。                                                                                                                                                                                                                                                                                                                                                                                                   |
| cantMakePayments                                                                                    | 1003 | このデバイスではアプリ内課金が許可されていません。トラブルシューティング[ガイド](cantMakePayments-flutter)を参照してください。                                                                                                                                                                                                                                                                                                                                                 |
| noPurchasesToRestore                                                                                | 1004 | このエラーは、App Storeで復元すべき購入が見つからなかったことを示します。                                                                                                                                                                                                                                                                                                                                                                       |
| [cantReadReceipt](https://developer.apple.com/documentation/storekit/skerror/code/paymentcancelled) | 1005 | <p>デバイス上に有効なレシートがありません。これはサンドボックステスト中に発生することがあります。</p><p>サンドボックスでは、実際に購入を行うまで有効なレシートファイルが存在しないため、アクセスする前に必ず購入を1件行ってください。サンドボックステスト中は、有効なAppleサンドボックスアカウントでデバイスにサインインしていることも確認してください。</p>                                                                                               |
| productPurchaseFailed                                                                               | 1006 | プロダクトの購入に失敗しました。このエラーは内部のStoreKitエラーをラップしています。実際の原因を確認するには、ラップされたエラーを読むか（または詳細ログを有効にしてコンソールで確認してください）。ラップされたエラーは通常、上の表のStoreKitコード0〜14のいずれかで、最も多いのは `paymentCancelled`、`paymentInvalid`、`paymentNotAllowed`、`invalidOfferPrice` です。原因を特定できない場合は、新しい[サンドボックスプロファイル](test-purchases-in-sandbox)を試してください。それでも失敗する場合はAppleサポートにお問い合わせください。 |
| missingOfferSigningParams                                                                           | 1007 | <p>このエラーは、Adaptyの連携またはオファーに問題があることを示します。</p><p>設定方法の詳細については、[App Store連携の設定](app-store-connection-configuration)および[オファー](offers)を参照してください。</p>                                                                                                                                                                                                                      |
| refreshReceiptFailed                                                                                | 1010 | このエラーは、レシートが受信されなかったことを示します。StoreKit 1のみに適用されます。                                                                                                                                                                                                                                                                                                                                              |
| receiveRestoredTransactionsFailed                                                                   | 1011 | 購入の復元に失敗しました。                                                                                                                                                                                                                                                                                                                                                                                                                        |
## カスタムネットワークコード \{#custom-network-codes\}
| エラー               | コード | 解決策                                                                                                                                                                                                                                                                                                                                                                                                                        |
| :------------------- | :--- |:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| notActivated   | 2002 | Adapty SDK が有効化されていません。<br/> スプラッシュスクリーンや初期の UI フックが `Adapty().activate` の返却前に Adapty のメソッドを呼び出している場合によく見られます。実機とエミュレーターではタイミングが異なるため、この症状は断続的に発生し、エミュレーターでは再現しないことがあります。他の SDK 呼び出しをスケジュールする前に `activate` の Future を `await` してください。詳細な順序については [Flutter SDK の呼び出し順序](flutter-sdk-call-order) を参照してください。                                                                                                                                                                                                                                                                                                                                                    |
| badRequest     | 2003 | リクエストが不正です。<br/> [App Store との連携](app-store-connection-configuration) に必要なすべての手順を完了しているか確認してください。                                                                                                                                                                                                                                                                           |
| serverError    | 2004 | サーバーエラーです。<br/> しばらく待ってから再試行してください。解決しない場合は Adapty サポートチームにお問い合わせください。                                                                                                                                                                                                                                                                                                                      |
| networkFailed  | 2005 | ユーザーのデバイスのネットワーク接続に問題があることを示します。<br/> VPN を無効にするか、モバイルデータ通信から WiFi に切り替えるか、またはその逆をお試しください。                                                                                                                                                                                                                                                                   |
| decodingFailed | 2006 | レスポンスのデコードに失敗したことを示します。<br/> コードを確認し、送信しているパラメーターが有効であることを確認してください。たとえば、無効な API キーを使用している場合にこのエラーが発生することがあります。                                                                                                                                                                                                                       |
| encodingFailed | 2009 | リクエストのエンコードに失敗したことを示します。                                                                                                                                                                                                                                                                                                                                                                                 |
| analyticsDisabled    | 3000 | [オプトアウト](analytics-integration#disabling-external-analytics-for-a-specific-customer) しているため、アナリティクスイベントを処理できません。                                                                                                                                                                                                                                                                                         |
| wrongParam           | 3001 | 一部のパラメーターが正しくないことを示します。<br/> Adapty ペイウォールビルダーを使用していてこのエラーによりペイウォールを表示できない場合は、ペイウォールビルダーで **Show on device** をオンにしてください。<br/> もう一つの原因として、ローカルの[フォールバック](fallback-paywalls)ファイルのバージョンが SDK バージョンと一致していない可能性があります。ダッシュボードから新しいファイルをダウンロードしてください。 |
| activateOnceError    | 3005 | `.activate` メソッドを複数回呼び出すことはできません。                                                                                                                                                                                                                                                                                                                                                                      |
| profileWasChanged    | 3006 | 操作中にユーザープロファイルが変更されました。<br/> `Adapty().identify` の実行中に別のメソッドを呼び出すと発生します。進行中の呼び出しが切り替え直前のプロファイルに対して行われるため、SDK がそれを拒否します。ユーザーアクションの呼び出しを行う前に必ず `identify` を `await` してください。詳細は [Flutter SDK の呼び出し順序](flutter-sdk-call-order) を参照してください。                                                                                                                                                                                          |
| unsupportedData      | 3007 | SDK がサポートしていないデータ形式であることを示します。                                                                                                                                                                                                                                                                                                                                                             |
| persistingDataError  | 3100 | データの保存中にエラーが発生しました。                                                                                                                                                                                                                                                                                                                                                                                                 |
| fetchTimeoutError    | 3101 | フェッチ操作がタイムアウトしたことを示します。                                                                                                                                                                                                                                                                                                                                                                           |
## その他の問題 \{#other-issues\}

まだ解決策が見つかっていない場合は、次のステップを試してみてください。
- **SDKを最新バージョンにアップグレードする**: 最新のSDKバージョンは安定性が高く、既知の問題の修正が含まれているため、常に最新版へのアップグレードをおすすめします。
- **サポートチームに連絡するか、[サポートフォーラム](https://adapty.featurebase.app/)で他の開発者に質問する**
- **[support@adapty.io](mailto:support@adapty.io)またはチャットからサポートチームに連絡する**: SDKのアップグレードが難しい場合や、アップグレードしても問題が解決しない場合は、サポートチームにお問い合わせください。[詳細ログを有効にして](sdk-installation-flutter#logging)ログをチームと共有すると、問題の解決が早まります。関連するコードスニペットを添付することも可能です。