Search Unity

Remote Config works for desktop but doesn't work for WebGL build.

Discussion in 'Unity Remote Config' started by nauroman, Dec 18, 2020.

  1. nauroman

    nauroman

    Joined:
    Nov 1, 2014
    Posts:
    13
    Unity 2020.2.0f1
    Unity Collaborate 1.3.9
    Remote Config 2.0.1

    FetchCompleted configResponse status is Success in Editor and Windows build but configResponse status is Fail for WebGL build uploaded to my hosting.

    Code (CSharp):
    1.         void Awake()
    2.         {
    3.             ConfigManager.FetchCompleted += FetchCompleted;
    4.  
    5.             ConfigManager.SetEnvironmentID("7e3a90d6-32ea-414b-b760-cda48df4078f");
    6.  
    7.             ConfigManager.FetchConfigs<UserAttributes, AppAttributes>(new UserAttributes(), new AppAttributes());
    8.         }
    9.  
    10.         void FetchCompleted(ConfigResponse configResponse)
    11.         {
    12.             Debug.Log($"FetchCompleted, status: {configResponse.status}");
    13.            
    14.             DownloadAssets();
    15.         }
    How can I fix it? Host server settings?
     
  2. JeffDUnity3D

    JeffDUnity3D

    Joined:
    May 2, 2017
    Posts:
    14,446
  3. nauroman

    nauroman

    Joined:
    Nov 1, 2014
    Posts:
    13
    Done.
     

    Attached Files:

  4. JeffDUnity3D

    JeffDUnity3D

    Joined:
    May 2, 2017
    Posts:
    14,446
    Wow, that was fast! And a perfect capture too, thank you. Not sure if it helps, but I do see "error": "Invalid JSON payload. Invalid `appid` field, not a valid string value" . Can you share the rest of your RC initialization code? That might be us, but want to confirm.
     
  5. nauroman

    nauroman

    Joined:
    Nov 1, 2014
    Posts:
    13
    Code (CSharp):
    1. using Picturethis3d.Categories;
    2. using Picturethis3d.Models;
    3. using Picturethis3d.ProductListControls;
    4. using Picturethis3d.Products;
    5. using Picturethis3d.ProductViewers;
    6. using Unity.RemoteConfig;
    7. using UnityEngine;
    8. using UnityEngine.AddressableAssets;
    9. using UnityEngine.AddressableAssets.ResourceLocators;
    10. using UnityEngine.ResourceManagement.AsyncOperations;
    11.  
    12. namespace Picturethis3d.ElranProductsViewer
    13. {
    14.     public class Main : MonoBehaviour
    15.     {
    16.         [SerializeField] private ProductViewer _productViewer;
    17.  
    18.         [SerializeField] private ProductListControl _productListControl = default;
    19.  
    20.         private struct UserAttributes
    21.         {
    22.         }
    23.  
    24.         private struct AppAttributes
    25.         {
    26.         }
    27.  
    28.         void Awake()
    29.         {
    30.             ConfigManager.FetchCompleted += FetchCompleted;
    31.  
    32.             ConfigManager.SetEnvironmentID("7e3a90d6-32ea-414b-b760-cda48df4078f");
    33.  
    34.             //        ConfigManager.SetCustomUserID("some-user-id");
    35.  
    36.             //         ConfigManager.SetEnvironmentID("an-env-id");
    37.  
    38.             ConfigManager.FetchConfigs<UserAttributes, AppAttributes>(new UserAttributes(), new AppAttributes());
    39.         }
    40.  
    41.         void FetchCompleted(ConfigResponse configResponse)
    42.         {
    43.             Debug.Log($"FetchCompleted, status: {configResponse.status}");
    44.  
    45.             DownloadAssets();
    46.         }
    47.  
    48.         private void DownloadAssets()
    49.         {
    50.             var catalogPath = ConfigManager.appConfig.GetString("catalogPath");
    51.             var catalogFileName = ConfigManager.appConfig.GetString("catalogFileName");
    52.  
    53.             Debug.Log($"catalogPath: {catalogPath}");
    54.             Debug.Log($"catalogFileName: {catalogFileName}");
    55.  
    56.             Addressables.LoadContentCatalogAsync(catalogPath + catalogFileName).Completed += OnCompletedLoadCatalog;
    57.         }
    58.  
    59.         private void OnCompletedLoadCatalog(AsyncOperationHandle<IResourceLocator> operationHandle)
    60.         {
    61.             Debug.Log($"OnCompletedLoadCatalog: {operationHandle.Result}");
    62.  
    63.             if (operationHandle.Status == AsyncOperationStatus.Succeeded)
    64.             {
    65.                 var rootCategoryAssetName = ConfigManager.appConfig.GetString("rootCategoryAssetName");
    66.                 Debug.Log($"rootCategoryAssetName: {rootCategoryAssetName}");
    67.  
    68.                 Addressables.LoadAssetAsync<Category>(rootCategoryAssetName).Completed += OnCompleted;
    69.             }
    70.         }
    71.  
    72.         private void OnCompleted(AsyncOperationHandle<Category> operationHandle)
    73.         {
    74.             Debug.Log($"OnCompleted: {operationHandle.Result}");
    75.  
    76.             if (operationHandle.Status == AsyncOperationStatus.Succeeded)
    77.             {
    78.                 var productId = ConfigManager.appConfig.GetLong("productId");
    79.                 Debug.Log($"productId: {productId}");
    80.  
    81.                 _productViewer.Product = Category.Find(productId) as Product;
    82.             }
    83.  
    84.             _productListControl.RootCategory = operationHandle.Result;
    85.         }
    86.  
    87.  
    88.         public void ModelClicked(Model model)
    89.         {
    90.             Debug.Log(model.name);
    91.         }
    92.  
    93.         public void ListItemProductClicked(Product product)
    94.         {
    95.             Debug.Log(product.name);
    96.  
    97.             _productViewer.Product = product;
    98.         }
    99.     }
    100. }
     
  6. JeffDUnity3D

    JeffDUnity3D

    Joined:
    May 2, 2017
    Posts:
    14,446
    Looks good, checking here.
     
  7. JRock2424

    JRock2424

    Joined:
    Apr 24, 2020
    Posts:
    8
    We are having issues in WebGL only as well...
    Unity 2019.4.17f1 LTS
    Remote Config 2.0.1

    We are setting the FetchConfigs handler in
    Awake()
    in our main class...
    Code (CSharp):
    1. ConfigManager.FetchCompleted += ApplyRemoteSettings;
    And we get the following error:

    Code (JavaScript):
    1. Exception at:
    2. Error
    3.     at jsStackTrace (blob:http://localhost:49290/7a098cb5-5a48-42c8-84e2-ae63dab7e192:749:12)
    4.     at stackTrace (blob:http://localhost:49290/7a098cb5-5a48-42c8-84e2-ae63dab7e192:763:11)
    5.     at blob:http://localhost:49290/7a098cb5-5a48-42c8-84e2-ae63dab7e192:88:36
    6.     at __ZN6il2cpp2vm9Exception5RaiseEP15Il2CppExceptionP10MethodInfo [il2cpp::vm::Exception::Raise(Il2CppException*, MethodInfo*)] (<anonymous>:wasm-function[104377]:0x1b1baa6)
    7.     at __Z30il2cpp_codegen_raise_exceptionP11Exception_tP10MethodInfo [il2cpp_codegen_raise_exception(Exception_t*, MethodInfo*)] (<anonymous>:wasm-function[106211]:0x1b53af3)
    8.     at _FileStream__ctor_mBC5F76C88DBC8C81D1F83407197D75F36E1ADBD7 (<anonymous>:wasm-function[75788]:0x16232d7)
    9.     at _FileStream__ctor_mB254658F1E758D76B41C942CB91BDF38FD544C83 (<anonymous>:wasm-function[75827]:0x16258ba)
    10.     at _File_Open_mDA5EB4A312EAEBF8543B13C572271FB5F673A501 (<anonymous>:wasm-function[75826]:0x162589e)
    11.     at _ConfigManagerImpl_LoadFromCache_m38D6538C08A309F3C946E16AA4F29BFA2A9CF660 (<anonymous>:wasm-function[111176]:0x1c06a93)
    12.     at _ConfigManagerImpl__ctor_m6EEEFEEE93AF449A77D120348F75F9F881C41CB3 (<anonymous>:wasm-function[111170]:0x1c0663a)
    13.     at _ConfigManager__cctor_m7E127ADF1A63FA5FFAB30670A9754FFD2C96E33C (<anonymous>:wasm-function[111169]:0x1c0631b)
    14.     at __Z66RuntimeInvoker_FalseVoid_t22962CB4C05B1D89B55A6E1139F0E87A90987017PFvvEPK10MethodInfoPvPS4_ [RuntimeInvoker_FalseVoid_t22962CB4C05B1D89B55A6E1139F0E87A90987017(void (*)(), MethodInfo const*, void*, void**)] (<anonymous>:wasm-function[36406]:0xfc4a21)
    15.     at __ZN6il2cpp2vm7Runtime6InvokeEPK10MethodInfoPvPS5_PP15Il2CppException [il2cpp::vm::Runtime::Invoke(MethodInfo const*, void*, void**, Il2CppException**)] (<anonymous>:wasm-function[104408]:0x1b1c1f3)
    16.     at __ZN6il2cpp2vm7Runtime9ClassInitEP11Il2CppClass [il2cpp::vm::Runtime::ClassInit(Il2CppClass*)] (<anonymous>:wasm-function[104411]:0x1b1c339)
    17.     at __Z33il2cpp_codegen_runtime_class_initP11Il2CppClass [il2cpp_codegen_runtime_class_init(Il2CppClass*)] (<anonymous>:wasm-function[106213]:0x1b53b07)
    18.     at _RemoteConfigHelper_Init_mEA82C1D8D82FD31FDFB0B0F564A83DC443578589 (<anonymous>:wasm-function[45029]:0x10f8a24)
    19.     at _App_Awake_m4CB37CEC83E2C56A21FAD2A12F544929AA785803 (<anonymous>:wasm-function[109869]:0x1bc6974)
    Any ideas?
     
    Last edited: Dec 29, 2020
  8. JeffDUnity3D

    JeffDUnity3D

    Joined:
    May 2, 2017
    Posts:
    14,446
    @JRock2424 we are checking but responses may be delayed due to the holidays.
     
  9. JRock2424

    JRock2424

    Joined:
    Apr 24, 2020
    Posts:
    8
    Any update on this?
     
  10. JeffDUnity3D

    JeffDUnity3D

    Joined:
    May 2, 2017
    Posts:
    14,446
    No updates yet, I've asked again. Are you using Newtonsoft.JSON by chance?
     
  11. JRock2424

    JRock2424

    Joined:
    Apr 24, 2020
    Posts:
    8
    Yes - it is part of the Remote Config package... upload_2021-2-3_16-29-58.png
     
  12. JeffDUnity3D

    JeffDUnity3D

    Joined:
    May 2, 2017
    Posts:
    14,446
    I just tested Remote Config 2.0.1 in WegGL without issue. I used Unity 2019.4.1f1 in my testing. Please compare to a new/empty project with only Remote Config. You may be seeing an issue with compatibility with another component