firebase / firebase-unity-sdk

The Firebase SDK for Unity
http://firebase.google.com
Apache License 2.0
220 stars 35 forks source link

[Bug] [RemoteConfig] [12.0.0] Exception after receiving FetchAsync result: "ArgumentOutOfRangeException - Value to add was out of range. Parameter name: value" #1058

Closed RomanValitov closed 2 days ago

RomanValitov commented 3 months ago

Description

After updating firebase sdk from version 10.5.0 to 12.0.0, a new exception appeared in crashlytics logs. An exception occurs after receiving the result of FetchAsync operation when accessing ConfigInfo data on both platforms, but mainly on iOS (affecting 5% of DAU).

Crashlytics stack trace ```yml Non-fatal Exception: ArgumentOutOfRangeException 0 ??? 0x0 Add (System.DateTime) 1 ??? 0x0 ctor (Firebase.RemoteConfig.ConfigInfo.) 2 ??? 0x0 get_Info (Firebase.RemoteConfig.FirebaseRemoteConfig) 3 ??? 0x0 MoveNext (Services.Firebase.FirebaseRemoteConfigManager+d__2) 4 ??? 0x0 InvokeMoveNext (UnityEngine.SetupCoroutine) ```
Code example ```yml Task fetchTask = FirebaseRemoteConfig.DefaultInstance.FetchAsync(timespan); yield return new Utils.WaitForTaskCompletion(fetchTask); ConfigInfo fetchInfo = FirebaseRemoteConfig.DefaultInstance.Info; switch (fetchInfo.LastFetchStatus) { case LastFetchStatus.Success: yield return ActivatingData(fetchInfo.FetchTime); break; case LastFetchStatus.Failure: switch (fetchInfo.LastFetchFailureReason) { case FetchFailureReason.Error: Debug.Log("Fetch failed for unknown reason"); break; case FetchFailureReason.Throttled: Debug.Log("Fetch throttled until " + fetchInfo.ThrottledEndTime); break; } break; case LastFetchStatus.Pending: Debug.Log("Latest Fetch call still pending."); break; } ```

Reproducing the issue

No response

Firebase Unity SDK Version

12.0.0

Unity editor version

2022.3.18f1

Installation Method

.unitypackage

Problematic Firebase Component(s)

Remote Config

Other Firebase Component(s) in use

AB Testing, Analytics, App Check, Authentication, Crashlytics, Installations, Messaging, Storage

Additional SDKs you are using

AppLovin, AppsFlyer, Facebook, GoogleMobileAds

Targeted Platform(s)

Apple Platforms, Android

Unity editor platform

Mac, Windows

Scripting Runtime

IL2CPP

Release Distribution Type

Pre-built SDK from https://firebase.google.com/download/unity

Relevant Log Output

No response

If using CocoaPods for Apple platforms, the project's Podfile.lock

Expand Podfile.lock snippet
```yml PODS: - Ads-Global/BUAdSDK_Compatible (5.9.0.9): - Ads-Global/BURelyAdSDK - Ads-Global/Dep_Compatible - Ads-Global/BURelyAdSDK (5.9.0.9) - Ads-Global/Dep_Compatible (5.9.0.9): - BURelyFoundation_Global/Pangle (~> 0.2.1.4) - AppAuth (1.7.5): - AppAuth/Core (= 1.7.5) - AppAuth/ExternalUserAgent (= 1.7.5) - AppAuth/Core (1.7.5) - AppAuth/ExternalUserAgent (1.7.5): - AppAuth/Core - AppLovinMediationByteDanceAdapter (5.9.0.9.0): - Ads-Global/BUAdSDK_Compatible (= 5.9.0.9) - AppLovinSDK - AppLovinMediationChartboostAdapter (9.2.0.0): - AppLovinSDK - ChartboostSDK (= 9.2.0) - AppLovinMediationFacebookAdapter (6.15.0.0): - AppLovinSDK - FBAudienceNetwork (= 6.15.0) - AppLovinMediationFyberAdapter (8.2.7.0): - AppLovinSDK - Fyber_Marketplace_SDK (= 8.2.7) - AppLovinMediationGoogleAdapter (11.5.0.0): - AppLovinSDK - Google-Mobile-Ads-SDK (= 11.5.0) - AppLovinMediationGoogleAdManagerAdapter (11.5.0.0): - AppLovinSDK - Google-Mobile-Ads-SDK (= 11.5.0) - AppLovinMediationInMobiAdapter (10.1.3.0): - AppLovinSDK - InMobiSDK/Core (= 10.1.3) - AppLovinMediationIronSourceAdapter (7.2.7.0.1): - AppLovinSDK - IronSourceSDK (= 7.2.7.0) - AppLovinMediationMadexAdapter (1.2.0): - AppLovinSDK - MadexSDK - AppLovinMediationMintegralAdapter (7.6.3.0.0): - AppLovinSDK - MintegralAdSDK (= 7.6.3) - MintegralAdSDK/BidSplashAd (= 7.6.3) - AppLovinMediationMyTargetAdapter (5.17.4.0): - AppLovinSDK - myTargetSDK (= 5.17.4) - AppLovinMediationUnityAdsAdapter (4.10.0.0): - AppLovinSDK - UnityAds (= 4.10.0) - AppLovinMediationVungleAdapter (7.3.1.0): - AppLovinSDK - VungleAds (= 7.3.1) - AppLovinMediationYandexAdapter (7.0.0.0): - AppLovinSDK - YandexMobileAds (= 7.0.0) - AppLovinSDK (12.1.0) - AppsFlyer-AdRevenue (6.5.4): - AppsFlyerFramework (~> 6) - AppsFlyerFramework (6.10.0): - AppsFlyerFramework/Main (= 6.10.0) - AppsFlyerFramework/Main (6.10.0) - BURelyFoundation_Global/AFNetworking (0.2.1.4) - BURelyFoundation_Global/APM (0.2.1.4) - BURelyFoundation_Global/Foundation (0.2.1.4): - BURelyFoundation_Global/NETWork - BURelyFoundation_Global/Gecko (0.2.1.4): - BURelyFoundation_Global/Foundation - BURelyFoundation_Global/Header (0.2.1.4) - BURelyFoundation_Global/NETWork (0.2.1.4): - BURelyFoundation_Global/AFNetworking - BURelyFoundation_Global/Pangle (0.2.1.4): - BURelyFoundation_Global/AFNetworking - BURelyFoundation_Global/APM - BURelyFoundation_Global/Foundation - BURelyFoundation_Global/Gecko - BURelyFoundation_Global/Header - BURelyFoundation_Global/NETWork - BURelyFoundation_Global/SDWebImage - BURelyFoundation_Global/YYModel - BURelyFoundation_Global/ZFPlayer - BURelyFoundation_Global/Zip - BURelyFoundation_Global/SDWebImage (0.2.1.4): - BURelyFoundation_Global/Foundation - BURelyFoundation_Global/YYModel (0.2.1.4) - BURelyFoundation_Global/ZFPlayer (0.2.1.4): - BURelyFoundation_Global/Foundation - BURelyFoundation_Global/Zip - BURelyFoundation_Global/Zip (0.2.1.4): - BURelyFoundation_Global/Foundation - ChartboostSDK (9.2.0) - DivKit (28.13.0): - DivKit_LayoutKit (= 28.13.0) - DivKit_Serialization (= 28.13.0) - VGSLCommonCore (~> 2.4) - VGSLNetworking (~> 2.4) - DivKit_LayoutKit (28.13.0): - DivKit_LayoutKitInterface (= 28.13.0) - VGSLCommonCore (~> 2.4) - DivKit_LayoutKitInterface (28.13.0): - VGSLBase (~> 2.4) - VGSLBaseTiny (~> 2.4) - VGSLBaseUI (~> 2.4) - DivKit_Serialization (28.13.0): - VGSLCommonCore (~> 2.4) - FBAEMKit (16.0.1): - FBSDKCoreKit_Basics (= 16.0.1) - FBAudienceNetwork (6.15.0) - FBSDKCoreKit (16.0.1): - FBAEMKit (= 16.0.1) - FBSDKCoreKit_Basics (= 16.0.1) - FBSDKCoreKit_Basics (16.0.1) - FBSDKGamingServicesKit (16.0.1): - FBSDKCoreKit (= 16.0.1) - FBSDKCoreKit_Basics (= 16.0.1) - FBSDKShareKit (= 16.0.1) - FBSDKLoginKit (16.0.1): - FBSDKCoreKit (= 16.0.1) - FBSDKShareKit (16.0.1): - FBSDKCoreKit (= 16.0.1) - Firebase/Analytics (10.25.0): - Firebase/Core - Firebase/Auth (10.25.0): - Firebase/CoreOnly - FirebaseAuth (~> 10.25.0) - Firebase/Core (10.25.0): - Firebase/CoreOnly - FirebaseAnalytics (~> 10.25.0) - Firebase/CoreOnly (10.25.0): - FirebaseCore (= 10.25.0) - Firebase/Crashlytics (10.25.0): - Firebase/CoreOnly - FirebaseCrashlytics (~> 10.25.0) - Firebase/Messaging (10.25.0): - Firebase/CoreOnly - FirebaseMessaging (~> 10.25.0) - Firebase/RemoteConfig (10.25.0): - Firebase/CoreOnly - FirebaseRemoteConfig (~> 10.25.0) - Firebase/Storage (10.25.0): - Firebase/CoreOnly - FirebaseStorage (~> 10.25.0) - FirebaseABTesting (10.28.0): - FirebaseCore (~> 10.0) - FirebaseAnalytics (10.25.0): - FirebaseAnalytics/AdIdSupport (= 10.25.0) - FirebaseCore (~> 10.0) - FirebaseInstallations (~> 10.0) - GoogleUtilities/AppDelegateSwizzler (~> 7.11) - GoogleUtilities/MethodSwizzler (~> 7.11) - GoogleUtilities/Network (~> 7.11) - "GoogleUtilities/NSData+zlib (~> 7.11)" - nanopb (< 2.30911.0, >= 2.30908.0) - FirebaseAnalytics/AdIdSupport (10.25.0): - FirebaseCore (~> 10.0) - FirebaseInstallations (~> 10.0) - GoogleAppMeasurement (= 10.25.0) - GoogleUtilities/AppDelegateSwizzler (~> 7.11) - GoogleUtilities/MethodSwizzler (~> 7.11) - GoogleUtilities/Network (~> 7.11) - "GoogleUtilities/NSData+zlib (~> 7.11)" - nanopb (< 2.30911.0, >= 2.30908.0) - FirebaseAppCheckInterop (10.28.0) - FirebaseAuth (10.25.0): - FirebaseAppCheckInterop (~> 10.17) - FirebaseCore (~> 10.0) - GoogleUtilities/AppDelegateSwizzler (~> 7.8) - GoogleUtilities/Environment (~> 7.8) - GTMSessionFetcher/Core (< 4.0, >= 2.1) - RecaptchaInterop (~> 100.0) - FirebaseAuthInterop (10.28.0) - FirebaseCore (10.25.0): - FirebaseCoreInternal (~> 10.0) - GoogleUtilities/Environment (~> 7.12) - GoogleUtilities/Logger (~> 7.12) - FirebaseCoreExtension (10.28.0): - FirebaseCore (~> 10.0) - FirebaseCoreInternal (10.28.0): - "GoogleUtilities/NSData+zlib (~> 7.8)" - FirebaseCrashlytics (10.25.0): - FirebaseCore (~> 10.5) - FirebaseInstallations (~> 10.0) - FirebaseRemoteConfigInterop (~> 10.23) - FirebaseSessions (~> 10.5) - GoogleDataTransport (~> 9.2) - GoogleUtilities/Environment (~> 7.8) - nanopb (< 2.30911.0, >= 2.30908.0) - PromisesObjC (~> 2.1) - FirebaseInstallations (10.28.0): - FirebaseCore (~> 10.0) - GoogleUtilities/Environment (~> 7.8) - GoogleUtilities/UserDefaults (~> 7.8) - PromisesObjC (~> 2.1) - FirebaseMessaging (10.25.0): - FirebaseCore (~> 10.0) - FirebaseInstallations (~> 10.0) - GoogleDataTransport (~> 9.3) - GoogleUtilities/AppDelegateSwizzler (~> 7.8) - GoogleUtilities/Environment (~> 7.8) - GoogleUtilities/Reachability (~> 7.8) - GoogleUtilities/UserDefaults (~> 7.8) - nanopb (< 2.30911.0, >= 2.30908.0) - FirebaseRemoteConfig (10.25.0): - FirebaseABTesting (~> 10.0) - FirebaseCore (~> 10.0) - FirebaseInstallations (~> 10.0) - FirebaseRemoteConfigInterop (~> 10.23) - FirebaseSharedSwift (~> 10.0) - GoogleUtilities/Environment (~> 7.8) - "GoogleUtilities/NSData+zlib (~> 7.8)" - FirebaseRemoteConfigInterop (10.28.0) - FirebaseSessions (10.28.0): - FirebaseCore (~> 10.5) - FirebaseCoreExtension (~> 10.0) - FirebaseInstallations (~> 10.0) - GoogleDataTransport (~> 9.2) - GoogleUtilities/Environment (~> 7.13) - GoogleUtilities/UserDefaults (~> 7.13) - nanopb (< 2.30911.0, >= 2.30908.0) - PromisesSwift (~> 2.1) - FirebaseSharedSwift (10.28.0) - FirebaseStorage (10.25.0): - FirebaseAppCheckInterop (~> 10.0) - FirebaseAuthInterop (~> 10.25) - FirebaseCore (~> 10.0) - FirebaseCoreExtension (~> 10.0) - GoogleUtilities/Environment (~> 7.12) - GTMSessionFetcher/Core (< 4.0, >= 2.1) - Fyber_Marketplace_SDK (8.2.7) - Google-Mobile-Ads-SDK (11.5.0): - GoogleUserMessagingPlatform (>= 1.1) - GoogleAppMeasurement (10.25.0): - GoogleAppMeasurement/AdIdSupport (= 10.25.0) - GoogleUtilities/AppDelegateSwizzler (~> 7.11) - GoogleUtilities/MethodSwizzler (~> 7.11) - GoogleUtilities/Network (~> 7.11) - "GoogleUtilities/NSData+zlib (~> 7.11)" - nanopb (< 2.30911.0, >= 2.30908.0) - GoogleAppMeasurement/AdIdSupport (10.25.0): - GoogleAppMeasurement/WithoutAdIdSupport (= 10.25.0) - GoogleUtilities/AppDelegateSwizzler (~> 7.11) - GoogleUtilities/MethodSwizzler (~> 7.11) - GoogleUtilities/Network (~> 7.11) - "GoogleUtilities/NSData+zlib (~> 7.11)" - nanopb (< 2.30911.0, >= 2.30908.0) - GoogleAppMeasurement/WithoutAdIdSupport (10.25.0): - GoogleUtilities/AppDelegateSwizzler (~> 7.11) - GoogleUtilities/MethodSwizzler (~> 7.11) - GoogleUtilities/Network (~> 7.11) - "GoogleUtilities/NSData+zlib (~> 7.11)" - nanopb (< 2.30911.0, >= 2.30908.0) - GoogleDataTransport (9.4.1): - GoogleUtilities/Environment (~> 7.7) - nanopb (< 2.30911.0, >= 2.30908.0) - PromisesObjC (< 3.0, >= 1.2) - GoogleSignIn (6.2.4): - AppAuth (~> 1.5) - GTMAppAuth (~> 1.3) - GTMSessionFetcher/Core (< 3.0, >= 1.1) - GoogleUserMessagingPlatform (2.5.0) - GoogleUtilities/AppDelegateSwizzler (7.13.3): - GoogleUtilities/Environment - GoogleUtilities/Logger - GoogleUtilities/Network - GoogleUtilities/Privacy - GoogleUtilities/Environment (7.13.3): - GoogleUtilities/Privacy - PromisesObjC (< 3.0, >= 1.2) - GoogleUtilities/Logger (7.13.3): - GoogleUtilities/Environment - GoogleUtilities/Privacy - GoogleUtilities/MethodSwizzler (7.13.3): - GoogleUtilities/Logger - GoogleUtilities/Privacy - GoogleUtilities/Network (7.13.3): - GoogleUtilities/Logger - "GoogleUtilities/NSData+zlib" - GoogleUtilities/Privacy - GoogleUtilities/Reachability - "GoogleUtilities/NSData+zlib (7.13.3)": - GoogleUtilities/Privacy - GoogleUtilities/Privacy (7.13.3) - GoogleUtilities/Reachability (7.13.3): - GoogleUtilities/Logger - GoogleUtilities/Privacy - GoogleUtilities/UserDefaults (7.13.3): - GoogleUtilities/Logger - GoogleUtilities/Privacy - GTMAppAuth (1.3.1): - AppAuth/Core (~> 1.6) - GTMSessionFetcher/Core (< 3.0, >= 1.5) - GTMSessionFetcher/Core (2.3.0) - InMobiSDK/Core (10.1.3) - IronSourceSDK (7.2.7.0) - MadexSDK (1.4.0): - SspnetCore - MintegralAdSDK (7.6.3): - MintegralAdSDK/BannerAd (= 7.6.3) - MintegralAdSDK/BidBannerAd (= 7.6.3) - MintegralAdSDK/BidInterstitialVideoAd (= 7.6.3) - MintegralAdSDK/BidNativeAd (= 7.6.3) - MintegralAdSDK/BidNewInterstitialAd (= 7.6.3) - MintegralAdSDK/BidRewardVideoAd (= 7.6.3) - MintegralAdSDK/InterstitialVideoAd (= 7.6.3) - MintegralAdSDK/NativeAd (= 7.6.3) - MintegralAdSDK/NewInterstitialAd (= 7.6.3) - MintegralAdSDK/RewardVideoAd (= 7.6.3) - MintegralAdSDK/BannerAd (7.6.3): - MintegralAdSDK/NativeAd - MintegralAdSDK/BidBannerAd (7.6.3): - MintegralAdSDK/BannerAd - MintegralAdSDK/BidNativeAd - MintegralAdSDK/BidInterstitialVideoAd (7.6.3): - MintegralAdSDK/BidNativeAd - MintegralAdSDK/InterstitialVideoAd - MintegralAdSDK/BidNativeAd (7.6.3): - MintegralAdSDK/NativeAd - MintegralAdSDK/BidNewInterstitialAd (7.6.3): - MintegralAdSDK/BidNativeAd - MintegralAdSDK/NewInterstitialAd - MintegralAdSDK/BidRewardVideoAd (7.6.3): - MintegralAdSDK/BidNativeAd - MintegralAdSDK/RewardVideoAd - MintegralAdSDK/BidSplashAd (7.6.3): - MintegralAdSDK/BidNativeAd - MintegralAdSDK/SplashAd - MintegralAdSDK/InterstitialVideoAd (7.6.3): - MintegralAdSDK/NativeAd - MintegralAdSDK/NativeAd (7.6.3) - MintegralAdSDK/NewInterstitialAd (7.6.3): - MintegralAdSDK/InterstitialVideoAd - MintegralAdSDK/NativeAd - MintegralAdSDK/RewardVideoAd (7.6.3): - MintegralAdSDK/NativeAd - MintegralAdSDK/SplashAd (7.6.3): - MintegralAdSDK/NativeAd - myTargetSDK (5.17.4): - myTrackerSDK (~> 3.0.3) - myTrackerSDK (3.0.8) - nanopb (2.30910.0): - nanopb/decode (= 2.30910.0) - nanopb/encode (= 2.30910.0) - nanopb/decode (2.30910.0) - nanopb/encode (2.30910.0) - PromisesObjC (2.4.0) - PromisesSwift (2.4.0): - PromisesObjC (= 2.4.0) - PurchaseConnector (6.8.1): - PurchaseConnector/Main (= 6.8.1) - PurchaseConnector/Main (6.8.1): - AppsFlyerFramework (>= 6.8.0) - RecaptchaInterop (100.0.0) - SspnetCore (1.4.0): - SspnetDsp - SspnetDsp (1.1.0) - UnityAds (4.10.0) - VGSL_Fundamentals (2.4.1): - VGSL_Fundamentals_Tiny (= 2.4.1) - VGSL_Fundamentals_Tiny (2.4.1) - VGSLBase (2.4.1): - VGSL_Fundamentals (= 2.4.1) - VGSLBaseTiny (= 2.4.1) - VGSLBaseUI (= 2.4.1) - VGSLBaseTiny (2.4.1): - VGSL_Fundamentals_Tiny (= 2.4.1) - VGSLBaseUI (2.4.1): - VGSLBaseTiny (= 2.4.1) - VGSLCommonCore (2.4.1): - VGSLBase (= 2.4.1) - VGSLNetworking (2.4.1): - VGSLBase (= 2.4.1) - VungleAds (7.3.1) - YandexMobileAds (7.0.0): - DivKit (= 28.13.0) - YandexMobileMetrica (< 5.0.0, >= 4.0.0) - YandexMobileMetrica (4.5.2): - YandexMobileMetrica/Static (= 4.5.2) - YandexMobileMetrica/Static (4.5.2): - YandexMobileMetrica/Static/Core (= 4.5.2) - YandexMobileMetrica/Static/Crashes (= 4.5.2) - YandexMobileMetrica/Static/Core (4.5.2) - YandexMobileMetrica/Static/Crashes (4.5.2): - YandexMobileMetrica/Static/Core DEPENDENCIES: - AppLovinMediationByteDanceAdapter (= 5.9.0.9.0) - AppLovinMediationChartboostAdapter (= 9.2.0.0) - AppLovinMediationFacebookAdapter (= 6.15.0.0) - AppLovinMediationFyberAdapter (= 8.2.7.0) - AppLovinMediationGoogleAdapter (= 11.5.0.0) - AppLovinMediationGoogleAdManagerAdapter (= 11.5.0.0) - AppLovinMediationInMobiAdapter (= 10.1.3.0) - AppLovinMediationIronSourceAdapter (= 7.2.7.0.1) - AppLovinMediationMadexAdapter (= 1.2.0) - AppLovinMediationMintegralAdapter (= 7.6.3.0.0) - AppLovinMediationMyTargetAdapter (= 5.17.4.0) - AppLovinMediationUnityAdsAdapter (= 4.10.0.0) - AppLovinMediationVungleAdapter (= 7.3.1.0) - AppLovinMediationYandexAdapter (= 7.0.0.0) - AppLovinSDK (= 12.1.0) - AppsFlyer-AdRevenue (= 6.5.4) - AppsFlyerFramework (= 6.10.0) - FBSDKCoreKit (~> 16.0.1) - FBSDKCoreKit_Basics (~> 16.0.1) - FBSDKGamingServicesKit (~> 16.0.1) - FBSDKLoginKit (~> 16.0.1) - FBSDKShareKit (~> 16.0.1) - Firebase/Analytics (= 10.25.0) - Firebase/Auth (= 10.25.0) - Firebase/Core (= 10.25.0) - Firebase/Crashlytics (= 10.25.0) - Firebase/Messaging (= 10.25.0) - Firebase/RemoteConfig (= 10.25.0) - Firebase/Storage (= 10.25.0) - FirebaseInstallations - Google-Mobile-Ads-SDK (= 11.5.0.0) - GoogleSignIn (= 6.2.4) - PurchaseConnector (= 6.8.1) SPEC REPOS: https://github.com/CocoaPods/Specs: - AppAuth - AppLovinSDK - AppsFlyerFramework - FBSDKCoreKit - FBSDKCoreKit_Basics - FBSDKShareKit - FirebaseAppCheckInterop - FirebaseCore - FirebaseInstallations - Google-Mobile-Ads-SDK - GoogleDataTransport - GoogleUtilities - GTMSessionFetcher - PromisesObjC - VGSLBase - VGSLBaseTiny - VGSLBaseUI trunk: - Ads-Global - AppAuth - AppLovinMediationByteDanceAdapter - AppLovinMediationChartboostAdapter - AppLovinMediationFacebookAdapter - AppLovinMediationFyberAdapter - AppLovinMediationGoogleAdapter - AppLovinMediationGoogleAdManagerAdapter - AppLovinMediationInMobiAdapter - AppLovinMediationIronSourceAdapter - AppLovinMediationMadexAdapter - AppLovinMediationMintegralAdapter - AppLovinMediationMyTargetAdapter - AppLovinMediationUnityAdsAdapter - AppLovinMediationVungleAdapter - AppLovinMediationYandexAdapter - AppsFlyer-AdRevenue - AppsFlyerFramework - BURelyFoundation_Global - ChartboostSDK - DivKit - DivKit_LayoutKit - DivKit_LayoutKitInterface - DivKit_Serialization - FBAEMKit - FBAudienceNetwork - FBSDKGamingServicesKit - FBSDKLoginKit - Firebase - FirebaseABTesting - FirebaseAnalytics - FirebaseAuth - FirebaseAuthInterop - FirebaseCoreExtension - FirebaseCoreInternal - FirebaseCrashlytics - FirebaseMessaging - FirebaseRemoteConfig - FirebaseRemoteConfigInterop - FirebaseSessions - FirebaseSharedSwift - FirebaseStorage - Fyber_Marketplace_SDK - GoogleAppMeasurement - GoogleSignIn - GoogleUserMessagingPlatform - GoogleUtilities - GTMAppAuth - InMobiSDK - IronSourceSDK - MadexSDK - MintegralAdSDK - myTargetSDK - myTrackerSDK - nanopb - PromisesSwift - PurchaseConnector - RecaptchaInterop - SspnetCore - SspnetDsp - UnityAds - VGSL_Fundamentals - VGSL_Fundamentals_Tiny - VGSLCommonCore - VGSLNetworking - VungleAds - YandexMobileAds - YandexMobileMetrica SPEC CHECKSUMS: Ads-Global: eb2b0f3e6bf2bb9af37d7fc2646f7db975e7d639 AppAuth: 501c04eda8a8d11f179dbe8637b7a91bb7e5d2fa AppLovinMediationByteDanceAdapter: b943d9203b6d1842bfadae65c144513efec70d77 AppLovinMediationChartboostAdapter: ae72923e64e185936e9ef25e7a39a92b7dc54baa AppLovinMediationFacebookAdapter: 30ddfcb09c1c9ff6778ba974f58e8f3204e6eebc AppLovinMediationFyberAdapter: 41e1c8f340e40d703b99a838ad1c0ec444accc13 AppLovinMediationGoogleAdapter: d6edc1d9176be45cac0811c76e8fd3eea470bd71 AppLovinMediationGoogleAdManagerAdapter: 8902d8bd20ba7fca78526c86d091497a1b563f93 AppLovinMediationInMobiAdapter: 63da8c765ec8b9672bcf8fb7e53919be71c9a7f4 AppLovinMediationIronSourceAdapter: 29681cb5fc9ba22b6d6c6d09bab179383fbd18b0 AppLovinMediationMadexAdapter: 3a57e16a75fb2c6086c848c2c92fafe8058e3663 AppLovinMediationMintegralAdapter: 604ba97da0b444bab213b7c9100d6ec374dd9b57 AppLovinMediationMyTargetAdapter: 4c047ff48fae1bcc6f6d73a21e783ded03073daf AppLovinMediationUnityAdsAdapter: d6d5bf488adce05684bf00e0845af49a96a1aadd AppLovinMediationVungleAdapter: b42444550ca03233753cfeb36a5660f94d038fb5 AppLovinMediationYandexAdapter: f71214302ba767b90fe6c176704fa36cf6575109 AppLovinSDK: 179d509c258e01a3a77eb8416f0ba843a12ed322 AppsFlyer-AdRevenue: dc145404655ff980a9938c9db145144d4ebe7ffd AppsFlyerFramework: dc8599db42e1669388287d47a1f0e6b8aa35639e BURelyFoundation_Global: 17ed9cd58d138feefd8c0711dd3294766adcb28e ChartboostSDK: 1d56075dc8f1e05b0d88b805bedb57e686a5d2ea DivKit: 65af423ea03c32b6ecaa63a64d4a2ea26c217f3b DivKit_LayoutKit: 3f88fab9edefb4938b9ccb5359ecbce4e1eeba69 DivKit_LayoutKitInterface: 90449756ba956a7fbf3b168c01f7a0b7fc6a9de0 DivKit_Serialization: 1b536e30c49163548bb62120320097c8ab41936d FBAEMKit: daac7466b918752f020345be5c7d9787f98cfc07 FBAudienceNetwork: 80a035aa69cc3a71c99e44cb5c2874e4cef9909f FBSDKCoreKit: 2cb033464b2134af0138f87d20b859eb3f9be359 FBSDKCoreKit_Basics: d37280da2e65872f0e931d15f45d97ea324fec37 FBSDKGamingServicesKit: 6b1cf4c68d5a8e8849522ec94e5a1bbdc23541e7 FBSDKLoginKit: c47a3b90920702487b10b647c63520dc2676dad9 FBSDKShareKit: dbc6adab8c837275fa6e7f5f0992dbde4fea87eb Firebase: 0312a2352584f782ea56f66d91606891d4607f06 FirebaseABTesting: 589bc28c0ab3e5554336895a34aa262e24276665 FirebaseAnalytics: ec00fe8b93b41dc6fe4a28784b8e51da0647a248 FirebaseAppCheckInterop: 5315f40293191bfec04b2cfab0215760e441540a FirebaseAuth: c0f93dcc570c9da2bffb576969d793e95c344fbb FirebaseAuthInterop: cec40cbafa1f9a6e0c3334c5c750a0cae7c97f80 FirebaseCore: 7ec4d0484817f12c3373955bc87762d96842d483 FirebaseCoreExtension: f63147b723e2a700fe0f34ec6fb7f358d6fe83e0 FirebaseCoreInternal: 58d07f1362fddeb0feb6a857d1d1d1c5e558e698 FirebaseCrashlytics: 4b96efb0ce73b38b2a85e8b8bd1bd8f63f09d015 FirebaseInstallations: 60c1d3bc1beef809fd1ad1189a8057a040c59f2e FirebaseMessaging: 88950ba9485052891ebe26f6c43a52bb62248952 FirebaseRemoteConfig: 9f3935cefecd85d5b312192117f444957de24a75 FirebaseRemoteConfigInterop: 70d200c6956ef3b5c3592a95e824c1210682d785 FirebaseSessions: 20da8500ad66bb12622743e170459bf62a0768e8 FirebaseSharedSwift: 48de4aec81a6b79bb30404e5e6db43ea74848fed FirebaseStorage: 44f4e25073f6fa0d4d8c09f5bec299ee9e4eb985 Fyber_Marketplace_SDK: 90d17e7cb04f505b00c2410679f115aefc9fd4e5 Google-Mobile-Ads-SDK: 7db2098033ad3bfcd72a11e7503b49700a93029e GoogleAppMeasurement: 9abf64b682732fed36da827aa2a68f0221fd2356 GoogleDataTransport: 6c09b596d841063d76d4288cc2d2f42cc36e1e2a GoogleSignIn: 5651ce3a61e56ca864160e79b484cd9ed3f49b7a GoogleUserMessagingPlatform: 6b4f48a370e77ce121d034c908cc6ee4fdafaf13 GoogleUtilities: ea963c370a38a8069cc5f7ba4ca849a60b6d7d15 GTMAppAuth: 0ff230db599948a9ad7470ca667337803b3fc4dd GTMSessionFetcher: 3a63d75eecd6aa32c2fc79f578064e1214dfdec2 InMobiSDK: 15589dbfbe6b28b1d3436ab1ede8654a0d7f2298 IronSourceSDK: 03ab6e62ac10589e5bea97cf0a379989f6965f36 MadexSDK: 6f01f8c88e09cd83bc355207c6142976846917cb MintegralAdSDK: 5ff28af4529d8eedf9e2c4e84ddf70bebf48691c myTargetSDK: acf56c7f19401c7929d3da7a9dcd43924364137e myTrackerSDK: df675bf18db63d9a426bd00d6c3dec4ba4bea57e nanopb: 438bc412db1928dac798aa6fd75726007be04262 PromisesObjC: f5707f49cb48b9636751c5b2e7d227e43fba9f47 PromisesSwift: 9d77319bbe72ebf6d872900551f7eeba9bce2851 PurchaseConnector: 87ef7cade66b5066445dd8317758c79f2ca65195 RecaptchaInterop: 7d1a4a01a6b2cb1610a47ef3f85f0c411434cb21 SspnetCore: 29788edd048fd801c6dbbab9647c9b73fc86f161 SspnetDsp: 2a71a9d278df038f7ed956985d37989a1c7e9202 UnityAds: 5601f6397b0e02ed3ed6ee92827f5177a523aab6 VGSL_Fundamentals: 4a965a687c76a5a435d7aaeb6b7182e82408bf4c VGSL_Fundamentals_Tiny: feab274b20c5838fbe09b887db0f6cfa28e26a1c VGSLBase: 37b95dd4ea137f73e8f9a8bd8ec474d8b4d75a68 VGSLBaseTiny: 0a0a4992a348184e8580cf73efa8eb373d750f6b VGSLBaseUI: 62f147155e7b7049a32a30ac87b5bd8b83e636c5 VGSLCommonCore: dd33088af6633d1c09f0c9bb8027920b99e2e0c8 VGSLNetworking: e12d616b447522bf524c689d28f55cfbb20473cd VungleAds: 04a17ab51fb61f41cd6d666fd0024509005740fe YandexMobileAds: f5467c294906de4a15e6337e6f0ae7789ecb3e41 YandexMobileMetrica: f5368ee93f286c793d73b58da00929babfc897c1 PODFILE CHECKSUM: 2191e7ddd6eb9b76f89300bd0424786195024777 COCOAPODS: 1.14.3 ```
keepup commented 3 months ago

Same problems. This exception is caused by Firebase.RemoteConfig.ConfigInfo.ThrottledEndTime.

keepup commented 2 months ago

@argzdev This bug is reproducible on specific versions of the Firebase Unity SDK and iOS platforms. The issue occurs when fetching remote config data, leading to an ArgumentOutOfRangeException.

Reproducible Firebase Unity SDK Versions:

v12.0.0 v12.1.0

Platforms:

iOS 15.1 iOS 15.1.1

Steps to Reproduce:

  1. Download the test project from https://github.com/firebase/quickstart-unity/tree/master/remote_config/testapp.
  2. In the FetchDataAsync() method of UIHandler.cs (https://github.com/firebase/quickstart-unity/blob/master/remote_config/testapp/Assets/Firebase/Sample/RemoteConfig/UIHandler.cs), add the following debug Debug.Log($">>>> ThrottledEndTime: {FirebaseRemoteConfig.DefaultInstance.Info.ThrottledEndTime}");
  3. Integrate the Firebase SDK into the project and add the configuration file per the instructions at https://firebase.google.com/docs/unity/setup#add-config-file.
  4. Build the project and run it on a device with iOS 15.1 or iOS 15.1.1 using XCode.
  5. Click "Fetch Remote Config" and observe the log statement Debug.Log($">>>> ThrottledEndTime: {FirebaseRemoteConfig.DefaultInstance.Info.ThrottledEndTime}"). The date should initially appear normal.
  6. Exit the app and re-enter it. Repeat step 5. Notice that the date becomes incorrect.
  7. Repeating step 6 multiple times causes the date to grow increasingly incorrect, eventually leading to an ArgumentOutOfRangeException.

Hope this helps in identifying and fixing the bug.

argzdev commented 2 months ago

Hey folks, thanks for the extra details and steps to reproduce the behavior. So far, I'm having trouble triggering the throttling failure so I'm unable to reproduce the ArgumentOutOfRangeException. During tests, if I try to fetch remote data for multiple times in a short span of time, I'd hit a Firebase.RemoteConfig.FetchFailureReason.Error instead of a Firebase.RemoteConfig.FetchFailureReason.Throttled.

Are you encountering throttling issue after fetching remote data multiple times? Or do you have another way of triggering this scenario? Would you mind sharing how you're triggering the throttling failure?

sonilics12 commented 2 months ago

@argzdev This bug is reproducible on specific versions of the Firebase Unity SDK and iOS platforms. The issue occurs when fetching remote config data, leading to an ArgumentOutOfRangeException.

Reproducible Firebase Unity SDK Versions:

v12.0.0 v12.1.0

Platforms:

iOS 15.1 iOS 15.1.1

Steps to Reproduce:

  1. Download the test project from https://github.com/firebase/quickstart-unity/tree/master/remote_config/testapp.
  2. In the FetchDataAsync() method of UIHandler.cs (https://github.com/firebase/quickstart-unity/blob/master/remote_config/testapp/Assets/Firebase/Sample/RemoteConfig/UIHandler.cs), add the following debug Debug.Log($">>>> ThrottledEndTime: {FirebaseRemoteConfig.DefaultInstance.Info.ThrottledEndTime}");
  3. Integrate the Firebase SDK into the project and add the configuration file per the instructions at https://firebase.google.com/docs/unity/setup#add-config-file.
  4. Build the project and run it on a device with iOS 15.1 or iOS 15.1.1 using XCode.
  5. Click "Fetch Remote Config" and observe the log statement Debug.Log($">>>> ThrottledEndTime: {FirebaseRemoteConfig.DefaultInstance.Info.ThrottledEndTime}"). The date should initially appear normal.
  6. Exit the app and re-enter it. Repeat step 5. Notice that the date becomes incorrect.
  7. Repeating step 6 multiple times causes the date to grow increasingly incorrect, eventually leading to an ArgumentOutOfRangeException.

Hope this helps in identifying and fixing the bug.

I have the same problem.

Reproducible Firebase Unity SDK Versions:

v12.1.0

Unity Version

2022.3.27f1c1

Platform:

OnePlus 6, Android version 11

Steps to Reproduce:

  1. Follow keepup's steps 1-3.
  2. Build and run on android via unity
  3. Turn on Airplane mode,
  4. Click "Fetch Remote Config", ArgumentOutOfRangeException occurs
keepup commented 2 months ago

Hey folks, thanks for the extra details and steps to reproduce the behavior. So far, I'm having trouble triggering the throttling failure so I'm unable to reproduce the ArgumentOutOfRangeException. During tests, if I try to fetch remote data for multiple times in a short span of time, I'd hit a Firebase.RemoteConfig.FetchFailureReason.Error instead of a Firebase.RemoteConfig.FetchFailureReason.Throttled.

Are you encountering throttling issue after fetching remote data multiple times? Or do you have another way of triggering this scenario? Would you mind sharing how you're triggering the throttling failure?

The cause of this bug is likely due to an incorrect value of configInfoInternal.throttled_end_time https://github.com/firebase/firebase-unity-sdk/blob/9cde9168ecd5f41bf0aa49b7d0deb2dc0217af43/remote_config/src/ConfigInfo.cs#L41

@argzdev Here is more info:

  1. Added the Debug.Log line in the FetchDataAsync() method

    public Task FetchDataAsync() {
      DebugLog("Fetching data...");
      System.Threading.Tasks.Task fetchTask =
      Firebase.RemoteConfig.FirebaseRemoteConfig.DefaultInstance.FetchAsync(
          TimeSpan.Zero);
    
      Debug.Log($"---->>> Last fetch status: {Firebase.RemoteConfig.FirebaseRemoteConfig.DefaultInstance.Info.LastFetchStatus}, Last fetch time: {Firebase.RemoteConfig.FirebaseRemoteConfig.DefaultInstance.Info.FetchTime}, " +
                $" Throttled end time : {Firebase.RemoteConfig.FirebaseRemoteConfig.DefaultInstance.Info.ThrottledEndTime}  last failed reason: {Firebase.RemoteConfig.FirebaseRemoteConfig.DefaultInstance.Info.LastFetchFailureReason}");
    
      return fetchTask.ContinueWithOnMainThread(FetchComplete);
    }
  2. Compiled it into an XCode project and connected a device running iOS 15.1 to the computer.
  3. Press Command+R to run the project and click the Fetch Remote Data button to output the following log.
    ---->>> Last fetch status: Pending, Last fetch time: 1970/1/1 0:00:00,  Throttled end time : 2112/8/9 0:03:36  last failed reason: Invalid
  4. Press Command+. to stop running.
  5. Repeat steps 3 and 4. The resulting log is:
    2:
    ---->>> Last fetch status: Success, Last fetch time: 2024/7/19 11:09:25,  Throttled end time : 2110/10/20 7:57:20  last failed reason: Invalid
    3:
    ---->>> Last fetch status: Success, Last fetch time: 2024/7/19 11:09:36,  Throttled end time : 2111/9/13 0:56:48  last failed reason: Invalid
    4:
    ---->>> Last fetch status: Success, Last fetch time: 2024/7/19 11:09:54,  Throttled end time : 1978/9/18 23:10:08  last failed reason: Invalid
    5:
    ---->>> Last fetch status: Success, Last fetch time: 2024/7/19 11:10:13,  Throttled end time : 2111/6/20 4:12:08  last failed reason: Invalid
    6:
    ---->>> Last fetch status: Success, Last fetch time: 2024/7/19 11:10:31,  Throttled end time : 1970/1/1 0:00:00  last failed reason: Invalid
    7:
    ---->>> Last fetch status: Success, Last fetch time: 2024/7/19 11:10:47,  Throttled end time : 8230/9/11 15:23:49  last failed reason: Invalid
    8:
    ---->>> Last fetch status: Success, Last fetch time: 2024/7/19 11:11:08,  Throttled end time : 2110/1/23 2:30:00  last failed reason: Invalid
    9:
    ---->>> Last fetch status: Success, Last fetch time: 2024/7/19 11:11:40,  Throttled end time : 2111/10/25 11:43:28  last failed reason: Invalid
    10:
    ---->>> Last fetch status: Success, Last fetch time: 2024/7/19 11:11:59,  Throttled end time : 2126/3/6 12:53:20  last failed reason: Invalid
    11:
    ---->>> Last fetch status: Success, Last fetch time: 2024/7/19 11:12:15,  Throttled end time : 2116/8/4 17:40:48  last failed reason: Invalid
    12:
    ---->>> Last fetch status: Success, Last fetch time: 2024/7/19 11:13:11,  Throttled end time : 2111/7/3 9:23:20  last failed reason: Invalid
    13:
    ---->>> Last fetch status: Success, Last fetch time: 2024/7/19 11:13:46,  Throttled end time : 2145/4/20 4:52:48  last failed reason: Invalid:
    14~∞:
    rgumentOutOfRangeException: Value to add was out of range.
    Parameter name: value
    at System.DateTime.Add (System.Double value, System.Int32 scale) [0x00000] in <00000000000000000000000000000000>:0 
    at Firebase.RemoteConfig.ConfigInfo..ctor (Firebase.RemoteConfig.ConfigInfoInternal configInfoInternal) [0x00000] in <00000000000000000000000000000000>:0 
    at Firebase.RemoteConfig.FirebaseRemoteConfig.get_Info () [0x00000] in <00000000000000000000000000000000>:0 
    at Firebase.Sample.RemoteConfig.UIHandler.FetchDataAsync () [0x00000] in <00000000000000000000000000000000>:0 
    at Firebase.Sample.RemoteConfig.UIHandler.GUIDisplayControls () [0x00000] in <00000000000000000000000000000000>:0 
    at Firebase.Sample.RemoteConfig.UIHandler.OnGUI () [0x00000] in <00000000000000000000000000000000>:0 

The ThrottledEndTime appears to be random each time. Sometimes, after deleting and reinstalling the app, an ArgumentOutOfRangeException is triggered after starting the app two or three times.

On iOS 17.2.1 devices, the ThrottledEndTime remains consistently unchanged.

1:
---->>> Last fetch status: Pending, Last fetch time: 1970/1/1 0:00:00,  Throttled end time : 1970/1/1 0:00:00  last failed reason: Invalid
2:
---->>> Last fetch status: Success, Last fetch time: 2024/7/19 11:38:13,  Throttled end time : 1970/1/1 0:00:00  last failed reason: Invalid
3:
---->>> Last fetch status: Success, Last fetch time: 2024/7/19 11:38:31,  Throttled end time : 1970/1/1 0:00:00  last failed reason: Invalid
theGacheeNextnull commented 2 months ago

I am extremely embarrassed and troubled, and my position at the company is at risk because of this! I need a quick fix. Also, exceptions do not appear in the Xcode log when there is an error! I am very angry.!!!

keepup commented 2 months ago

Hi @argzdev ! Is there any progress?

argzdev commented 2 months ago

Hey folks, sorry for the delayed response. I've been trying to test different scenarios with this issue. It seems that there's no emulator for iOS version 15.1 and 15.1.1, so I'm unable to simulate the ArgumentOutOfRangeException. However, I was able to reproduce the issue where the ThrottledEndTime remains at 1970/1/1 0:00:00. I believe this issue is related to the throttling issue in the firebase iOS repository. Furthermore, testing with Android shows that this issue is not present. I'll notify our engineering team and see if we have updates to share from the internal tracking b/327637888.

@theGacheeNextnull, sorry to hear you're having trouble with our SDK. Are you also encountering this same issue? The exceptions should atleast show if there is an error. You might be encountering a different problem compared to the one stated by the author. In this case, could you file a new report with your details so we can investigate this further. Thanks!

sonilics12 commented 1 month ago

Hi, @argzdev. When you enable airplane mode on your Android phone, can you reproduce this bug? On my device, this issue definitely occurs.

AndreiPol commented 1 month ago

Hello we are having the same issue on android, here is the stack trace. System.DateTime.Add (System.Double value, System.Int32 scale) [0x0003f] in <058a961084f44a30aefe41e4d0c6d652>:0 at System.DateTime.AddMilliseconds (System.Double value) [0x00000] in <058a961084f44a30aefe41e4d0c6d652>:0 at Firebase.RemoteConfig.ConfigInfo..ctor (Firebase.RemoteConfig.ConfigInfoInternal configInfoInternal) [0x00039] in /home/runner/work/firebase-unity-sdk/firebase-unity-sdk/remote_config/src/ConfigInfo.cs:41 at Firebase.RemoteConfig.FirebaseRemoteConfig.EnsureInitializedAsync () [0x0009a] in /home/runner/work/firebase-unity-sdk/firebase-unity-sdk/remote_config/src/FirebaseRemoteConfig.cs:175 at FirebaseRemoteConfigHandler.FetchComplete () [0x00044] in C:\Jenkins-Agent\workspace\MyTown_Google_Freemium\Assets\Common\Scripts\Firebase\FirebaseRemoteConfigHandler.cs:54 at FirebaseRemoteConfigHandler.FetchDataAsync () [0x000c5] in C:\Jenkins-Agent\workspace\MyTown_Google_Freemium\Assets\Common\Scripts\Firebase\FirebaseRemoteConfigHandler.cs:43

tranvansanghust commented 1 month ago

I also face the issue after updating FirebaseRemoteConfig to version 12.2.0. Does anyone solve the problem?

vavd commented 1 month ago

The same issue when internet is not available on the android device. Firebase v12.2.0 image image

ali-pjx commented 1 month ago

We also have the exact same issue on both platforms. So far no other option than downgrading.

devmucahideyvaz commented 1 month ago

@argzdev This issue persists in version 12.2.0, when will it be fixed? I need to update because there are ANR issues. I can't update because of this error.

argzdev commented 1 month ago

We currently don't have a timeline yet for the fix. Our engineers are aware and is still investigating this issue. We'll reply back here once we get further updates.

tranvansanghust commented 1 month ago

I faced the similar bug. I do these steps to fix it.

  1. Ensure Remote Config was initialized after firebase was initialized done.
  2. Comment the line: await remoteConfig.EnsureInitializedAsync();

I am using firebase-unity 12.2.0

keepup commented 4 weeks ago

I meet the similar bug. I do these steps to fix it.

  1. Ensure Remote Config was initialized after firebase was initialized done.
  2. Comment the line: await remoteConfig.EnsureInitializedAsync();

I am using firebase-unity 12.2.0

This method didn’t fix the bug. If the conditions for an ArgumentOutOfRangeException are met, await remoteConfig.EnsureInitializedAsync() will also throw an ArgumentOutOfRangeException.

Mishgan commented 3 weeks ago

I have the same problem with my projects and I can confirm that this issue happens with Unity 2022.3.32 and Firebase SDK 12.1.0 and 12.0.0. For 2022.3.32 and Firebase SDK 11.9.0 this issue doesn't happen.

Very sad bug that exists for several months still not fixed. Lots of users were impacted. And we can't downgrade because v 12.0.0 contains import changes for android (target api 34). Very frustrating.

devmucahideyvaz commented 2 weeks ago

@a-maurice @argzdev This issue persists in version 12.2.0, when will it be fixed? I need to update because there are ANR issues. I can't update because of this error.

argzdev commented 2 weeks ago

Hey folks, I did see that a recent pull request which fixes this issue was merged a few weeks back. This fix should go out in the next release. While we can't provide an exact timeline, we generally aim to release every month, but there are sometimes longer/shorter intervals. I'll try to provide updates as soon as we can. Feel free to keep an eye out on our release notes.

a-maurice commented 2 days ago

The latest release, 12.3.0, https://github.com/firebase/firebase-unity-sdk/releases/tag/v12.3.0, has the fix for this issue. Thanks for bringing it to our attention.