React Native SDKのエラー処理

SDKから返されるエラーはすべて AdaptyErrorCode です。以下に例を示します。

Tip

デバッグ前に詳細ログを有効にしてください。 ほとんどの AdaptyError は、内部にStoreKit、Play Billing、ネットワーク、またはバックエンドのエラーをラップしています。詳細ログ(adapty.setLogLevel('verbose') — 純粋なRNまたはExpoのログ記録を参照)を有効にすると、ラップされたエラーがコンソールに出力され、実際の原因を特定しやすくなります。

Important

これらの解決策で問題が解決しない場合は、サポートチームへのお問い合わせ前にその他の問題のセクションをご確認ください。より迅速にサポートできるよう、事前の確認をお願いしています。

try {
  const params: MakePurchaseParamsInput = {};
  await adapty.makePurchase(product, params);
} catch (error) {
  if (
    error instanceof AdaptyError &&
    error.adaptyCode === getErrorCode('cantMakePayments')
  ) {
    // このデバイスではアプリ内課金が許可されていません
  }
}

error.adaptyCode は数値なので、数値と比較してください:リテラル(1003)または getErrorCode('<name>') の結果のいずれかです。ErrorCode は逆方向(数値から名前)のマッピングなので、比較ではなくログ出力に使用してください。

Note

ユーザーがキャンセルした購入はエラーではありません。makePurchase は type が 'user_cancelled' の AdaptyPurchaseResult で解決されます。詳細は購入を行うを参照してください。

システムStoreKitコード

エラーコード解決策
unknown0不明または予期しないエラーが発生したことを示すエラーコードです。
再試行するか、その他の問題セクションを参照してください。
clientInvalid1クライアントが試みた操作を実行する権限がないことを示すエラーコードです。
paymentCancelled2

ユーザーが支払いリクエストをキャンセルしたことを示すエラーコードです。

特別な対応は不要ですが、ビジネスロジックの観点から、ユーザーに割引を提供したり、後でリマインドしたりすることを検討できます。

paymentInvalid3支払いパラメーターのいずれかがApp Storeに認識されなかったことを示すエラーです。
paymentNotAllowed4ユーザーが支払いの承認を許可されていないことを示すエラーコードです。
storeProductNotAvailable5リクエストされたプロダクトがストアで利用できないことを示すエラーコードです。
アプリを再インストールしてみてください。
cloudServicePermissionDenied6ユーザーがCloudサービス情報へのアクセスを許可していないことを示すエラーコードです。
cloudServiceNetworkConnectionFailed7デバイスがネットワークに接続できなかったことを示すエラーコードです。
cloudServiceRevoked8ユーザーがこのクラウドサービスの使用許可を取り消したことを示すエラーコードです。
privacyAcknowledgementRequired9ユーザーがAppleのプライバシーポリシーをまだ承認していないことを示すエラーコードです。
unauthorizedRequestData10アプリが必要なエンタイトルメントを持っていないプロパティを使用しようとしていることを示すエラーコードです。
invalidOfferIdentifier11

オファーのidentifierが有効ではありません。例えば、App Storeでそのidentifierのオファーを設定していない場合や、オファーを失効させた場合などです。

AppStore Connectで必要なオファーを設定し、有効なオファーidentifierを渡していることを確認してください。

invalidSignature12支払い割引の署名が有効ではないことを示すエラーコードです。
missingOfferParams13支払い割引のパラメーターが不足していることを示すエラーコードです。
invalidOfferPrice14App Store Connectで指定した価格が無効になったことを示すエラーコードです。オファーは常に割引価格である必要があります。

カスタムAndroidコード

エラーコード解決策
adaptyNotInitialized20Adapty.activate メソッドで Adapty SDK を正しく設定する必要があります。設定方法は React Native 向けのドキュメント をご確認ください。
productNotFound22このエラーは、購入しようとしたプロダクトがストアで利用できないことを示しています。
currentSubscriptionToUpdateNotFoundInHistory24更新対象の元のサブスクリプションが見つかりません。
billingServiceTimeout97このエラーは、Google Play が応答する前にリクエストが最大タイムアウトに達したことを示しています。Play Billing Library の呼び出しで要求されたアクションの実行に遅延が発生した場合などに起こります。
featureNotSupported98現在のデバイスの Play Store では、リクエストされた機能がサポートされていません。
billingServiceDisconnected99この致命的なエラーは、BillingClient 経由でのクライアントアプリと Google Play ストアサービスの接続が切断されたことを示しています。
billingServiceUnavailable102この一時的なエラーは、Google Play Billing サービスが現在利用できないことを示しています。ほとんどの場合、クライアントデバイスと Google Play Billing サービス間のどこかでネットワーク接続の問題が発生しています。
billingUnavailable103

このエラーは、購入プロセス中にユーザーの課金エラーが発生したことを示しています。発生するケースの例:

1. ユーザーのデバイス上の Play Store アプリが古い。

2. ユーザーがサポートされていない国にいる。

3. ユーザーがエンタープライズユーザーであり、エンタープライズ管理者が購入を無効にしている。

4. Google Play がユーザーの支払い方法に課金できない(例:クレジットカードの有効期限切れ)。

5. ユーザーが Play Store アプリにログインしていない。

developerError105API の誤った使用を示す致命的なエラーです。
billingError106Google Play 内部の問題を示す致命的なエラーです。
itemAlreadyOwned107消耗型アイテムはすでに購入済みです。
itemNotOwned108このエラーは、アイテムに対するリクエストされたアクションが失敗したことを示しています。
billingNetworkError112このエラーは、デバイスと Play システム間のネットワーク接続に問題があったことを示しています。

カスタムStoreKitコード

エラーコード解決策
noProductIDsFound1000

このエラーは、ペイウォールでリクエストしたプロダクトが App Store に登録されているにもかかわらず、購入できる状態にないことを示します。InvalidProductIdentifiers 警告が同時に表示される場合があります。警告のみでエラーがない場合は無視して構いません。

このエラーが発生している場合は、コード 1000 noProductIDsFound エラーの修正方法セクションの手順に従ってください。

productRequestFailed1002

現時点で利用可能なプロダクトを取得できません。考えられる原因:

- キャッシュがまだ作成されておらず、同時にインターネット接続もない。

cantMakePayments1003このデバイスではアプリ内課金が許可されていません。トラブルシューティングガイドを参照してください。
noPurchasesToRestore1004Adapty React Native SDK 4.0.3 で非推奨: restorePurchases() はこのエラーを返さなくなりました。復元するものがない場合、メソッドは現在のプロファイルで解決するため、その中のアクセスレベルのステータスを確認してください。それ以前の SDK バージョンでは、このエラーは Google Play が復元する購入を見つけられなかったことを示します。
cantReadReceipt1005

デバイスに有効なレシートがありません。サンドボックステスト中に発生することがあります。

対応は不要ですが、ビジネスロジックの観点から、ユーザーに割引を提供したり、後でリマインドしたりすることができます。

productPurchaseFailed1006プロダクトの購入に失敗しました。このエラーは内部の StoreKit エラーをラップしています。実際の原因については、ラップされたエラーを確認するか(または詳細ログを有効にしてコンソールで確認)してください。ラップされたエラーは通常、上記の表にある StoreKit コード 0〜14 のいずれかで、最も多いのは paymentCancelled、paymentInvalid、paymentNotAllowed、invalidOfferPrice です。原因を特定できない場合は、新しいサンドボックスプロファイルで試してみてください。それでも失敗する場合は Apple サポートにお問い合わせください。
refreshReceiptFailed1010レシートが受信されなかったことを示します。StoreKit 1 のみに適用されます。
receiveRestoredTransactionsFailed1011購入の復元に失敗しました。
billingPlanUnavailable1060iOS のみ。このデバイスでは、プロダクトがリクエストされた請求プランを提供していません。12 か月コミットメントプランには iOS 26.4 以降と Xcode 26.5 以降でビルドされたアプリが必要です。React Native SDK 4.3.0 にはこのコードの名前がないため、getErrorCode('billingPlanUnavailable') は undefined を返します。error.adaptyCode を 1060 と比較してください。

カスタムネットワークコード

エラーコード解決策
notActivated2002Adapty SDK が有効化されていません。
スプラッシュスクリーンや早期の UI フックが adapty.activate の返却前に Adapty メソッドを呼び出している場合によく見られます。実機とシミュレーターではタイミングが異なるため、この症状は断続的で再現しないこともあります。他の SDK 呼び出しをスケジュールする前に activate を await してください。完全なシーケンスについては React Native SDK の呼び出し順序 を参照してください。
badRequest2003リクエストが不正です。
App Store との連携に必要なすべての手順を完了していることを確認してください。
serverError2004サーバーエラーです。
しばらく時間をおいてから再試行してください。問題が解決しない場合は、Adapty サポートチームにお問い合わせください。
networkFailed2005ユーザーのデバイスのネットワーク接続に問題があることを示すエラーです。
VPN を無効にするか、モバイルデータ通信から WiFi に切り替えるか、またはその逆をお試しください。
decodingFailed2006レスポンスのデコードに失敗したことを示すエラーです。
コードを確認し、送信するパラメーターが有効であることを確認してください。たとえば、このエラーは無効な API キーを使用していることを示している場合があります。
encodingFailed2009リクエストのエンコードに失敗したことを示すエラーです。
analyticsDisabled3000オプトアウトしているため、アナリティクスイベントを処理できません。
wrongParam3001一部のパラメーターが正しくないことを示すエラーです。
旧ペイウォールビルダーを使用しているときにこのエラーでペイウォールを表示できない場合は、そのビルダーの Show on device をオンにしてください。
また、ローカルのフォールバックファイルのバージョンが SDK バージョンと一致していないことが原因の場合もあります。ダッシュボードから新しいファイルをダウンロードしてください。
activateOnceError3005.activate メソッドを複数回呼び出すことはできません。
profileWasChanged3006操作中にユーザープロファイルが変更されました。
adapty.identify の実行中にメソッドが呼び出された場合に発生します。実行中の呼び出しが切り替え直前のプロファイルに対して行われ、SDK がそれを拒否します。ユーザーアクションの呼び出しを行う前に必ず identify を await してください。React Native SDK の呼び出し順序 を参照してください。
unsupportedData3007データ形式が SDK でサポートされていないことを示すエラーです。
persistingDataError3100データの保存中にエラーが発生しました。
fetchTimeoutError3101フェッチ操作がタイムアウトしたことを示すエラーです。
operationInProgress3201同じ種類の別の操作がまだ実行中です。
前の呼び出しがまだストアメッセージを表示している場合に showStoreMessages から返されます。完了するまで待ってから再試行してください。SDK 4.3.0 以降が必要です。
resolverFailure3202SDK が操作に必要なリソースを見つけられませんでした。
フォアグラウンドでアクティブなウィンドウシーンが存在しない場合に iOS の showStoreMessages から返されます。アプリがフォアグラウンドにある状態でメソッドを再度呼び出してください。SDK 4.3.0 以降が必要です。
operationInterrupted9000この操作はシステムによって中断されました。
呼び出しを再試行してください。

その他の問題

まだ解決策が見つからない場合は、以下の手順をお試しください。

  • SDKを最新バージョンにアップグレードする: 最新のSDKバージョンはより安定しており、既知の問題の修正が含まれているため、常に最新版へのアップグレードをお勧めします。
  • サポートチームに連絡するか、サポートフォーラムで他の開発者に助けを求める。
  • support@adapty.ioまたはチャットでサポートチームに連絡する: SDKのアップグレードができない場合や、アップグレードしても解決しない場合は、サポートチームにお問い合わせください。詳細ログを有効にしてログをチームと共有することで、問題の解決が早まります。関連するコードスニペットも添付できます。