Search Unity

  1. Welcome to the Unity Forums! Please take the time to read our Code of Conduct to familiarize yourself with the forum rules and how to post constructively.
  2. We have updated the language to the Editor Terms based on feedback from our employees and community. Learn more.
    Dismiss Notice

Update Remote Config Environment Names

Discussion in 'Unity Remote Config' started by tagh, Jul 20, 2021.

  1. tagh

    tagh

    Unity Technologies

    Joined:
    Aug 16, 2017
    Posts:
    22
    An upcoming release of Remote Config will update Environments to improve functionality between Unity Game Services. These changes focus on the Environment Name. Environment IDs will remain unchanged and unaffected, as will all delivery of your Remote Config settings. You do not need to update the remote config package(s) in your existing projects or make changes to any existing builds after these changes have been made.


    What do I need to know?

    Remote Config allowed the Environment Name field to contain the UTF-8 Character set and allowed for users to choose the default environment. Going forward the Environment Name field will be restricted to only allow lower case alphanumeric characters, hyphens, and underscores.

    [a-z, 0-9, -, _ ]


    Additionally, there will be a requirement to have the default Environment named production. An Environment ID can be specified to access a specific environment just as it works currently.

    For Legacy Package version users 1.0.x we will continue to support the Release and Development environment model; however, Release will be renamed to production.


    What do I need to do?

    For all Remote Config Customers that have environment names that do not meet the new constraints we will be modifying Environment Name to the limited character set after Friday, July 30 2021.

    If your names are not updated, our team will adjust Environment Names that do not conform to the new standards as follows:

    1. The Environment that is marked as default will be renamed to production (all lower case characters).
    • Any existing environment named production that is not the default will have _migrated appended to the name, e.g. production_migrated
    2. Any environments with a space character in the name will have that space replaced with an underscore ‘_’.

    3. Any environments with non alphanumeric characters will be converted to migrated_env#.
    • For multiple environment names numbering will start at 1 and increment in order of EnvironmentID for the Project.
    4. Functionality for setting a default environment will be deprecated, and will utilize the environment name production as the default environment going forward. If a different environment is desired, the ability to pass an Environment ID is available and will be maintained to support this use case.


    You are able to make these changes yourself to accommodate the new environment name scheme; if you would like to yourself. Please make the changes by Friday, July 30 2021.


    These changes will allow for greater interoperability between Environments functionality that is already available, and planned in other Unity solutions. . We appreciate your understanding, and going forward to provide a more unified experience across our platform.

    If you have any questions or require assistance please reach out through the forums to the Remote Config Team.

    [UPDATE: Changed date from TBD to Friday July 30 2021]
     
    Last edited: Jul 23, 2021
    yadanathiri likes this.
  2. at_

    at_

    Joined:
    Oct 29, 2018
    Posts:
    24
    Hi,

    Our setup is built on the assumption that the default environment is *not* production. This is specifically to avoid mistakes during development affecting our production environment. If I understand this right, the ability to default to a non-production environment is going away completely.
    While I understand there must be a good reason for this internally, from the outside perspective this just seems like features (that we relied on) being cut, causing breaking changes, with one week's notice during the summer vacation season no less.

    I hope there was a very good reason for the rushed schedule on this.
     
  3. tagh

    tagh

    Unity Technologies

    Joined:
    Aug 16, 2017
    Posts:
    22
    Hi at_, thanks for your reply. We hear your concern, and I’d like to offer a bit of context for this change.

    First, I should emphasize that this change will not break or alter your existing Remote Config settings delivery to your users. If you have a game build in the wild that requests settings from the default Environment, they will continue to retrieve the exact same settings after this change. If you have a game build that explicitly targets a non-default Environment ID, they will continue to retrieve the settings from that non-default Environment.

    What is changing is that we are conforming Environment names so that the default environment is called “production” going forward, and also that any additional custom Environments conform to an alpha-numeric syntax naming scheme.

    We are making this change so that Remote Config can take advantage of a Unity-wide Environments initiative that will be rolled out later this summer. Instead of managing Environments that only impact a single Unity cloud service, this will allow you to control Environments that span services. In order to coordinate with multiple Unity services (some of which have not yet integrated with this Environments initiative), we needed to standardize how we treat the “default”, so that all Unity services can expect the same thing for this user flow.

    I hope this context helps - if you have more questions or concerns, please reply here or you can DM me and I can try and work out how we might be able to help with any particular challenges you have.


     
  4. dan_unity30

    dan_unity30

    Joined:
    Jul 2, 2021
    Posts:
    1
    We also want to continue with our default environment *not* being production to avoid issues in development and staging from affecting live production.
    Our environments used to be setup like:
    • dev (default)
    • staging
    • prod
    Ahead of this change our workaround is to now have a *true* production environment called "prod" and avoid using the "production" environment.
    • production (default, don't use this)
    • dev
    • staging
    • prod (this is real production)
    Pretty confusing. Maybe "default" would be a better name for the default environment?
     
  5. tagh

    tagh

    Unity Technologies

    Joined:
    Aug 16, 2017
    Posts:
    22
    Hi dan_unity30

    We are locked in with using production as the default environment name going forward.

    Based on the environments you listed this is what the migration would look like:
    Code (Boo):
    1. Your Current Environments   | Environments Post Migration
    2. dev (default) ->   production (default)
    3. staging ->   staging
    4. prod ->   prod
    If you would like to keep the name dev, and have builds point to that environment you can reference it by the EnvironmentID, as it would not be the "default" environment served to builds that do not specify an EnvironmentID.


     
  6. at_

    at_

    Joined:
    Oct 29, 2018
    Posts:
    24
    Hi again,

    Thank you for the response, I see now that while the environments certainly get renamed in a potentially confusing manner, this shouldn't break anything. However, I'd like to ask a question about a different affected use case.

    Previously, the EnvironmentID-less configuration fetch call directed you to the current default. This enabled changing the entire environment of the built and released application simply by moving the default environment tag to a different environment.

    This no longer seems possible, so what is the suggested replacement workflow? My first idea was applying a rule that changes all of these parameters based on a condition, but that condition would have to be a remote config setting in itself and that doesn't seem to be possible. Is there an alternative workaround I've missed?
     
  7. JeffDUnity3D

    JeffDUnity3D

    Unity Technologies

    Joined:
    May 2, 2017
    Posts:
    14,446
    Can you share your current code? You mentioned, based on a condition. Couldn't that "condition" be an EnvironmentID?
     
    Deleted User likes this.
  8. tagh

    tagh

    Unity Technologies

    Joined:
    Aug 16, 2017
    Posts:
    22
    Hi at_

    I see a potential solution:

    1. Copy config settings from a non-default environment to the default production environment. This can be done manually, or we also support an API to automate the transfer of config settings between environments.

    2. Re-create any rules needed in that new environment manually - or using our APIs to automate the creation of these rules in the default production environment.

    Our near term roadmap includes adding functionality to copy the contents of Environments between each other which will make transferring Settings, Rules, Campaigns to and from the default much easier.

    EDIT: Added Links to the Docs
     
    Last edited: Jul 30, 2021
  9. at_

    at_

    Joined:
    Oct 29, 2018
    Posts:
    24
    Hi,

    @JeffDUnity3D, there's no code to refer to other than a basic FetchConfigs call without an environmentID set. The "condition" in the previous workflow would've been the default tag, switching which config the game fetches with no environmentID set.
    I suppose it could be possible to fetch a new environmentID as a setting from the default config and then refetch with the new environmentID. This would certainly allow retargeting a published game to different environments in production.

    As for @tagh's suggestion, If I understood this right, your idea would be to build tooling around the API to, rather than switch the environment the game points to, instead keep the environment static but replace all of its settings with the configs from other environments acting as templates.

    This definitely sounds like it would work but does add management and tooling overhead compared to simply being able to point a live game at a different environment with a single click. It's comforting to hear that functionality to improve this process is on the roadmap.

    I understand that this is probably not a common use case so thank you for your patience in discussing these concerns.
     
  10. tagh

    tagh

    Unity Technologies

    Joined:
    Aug 16, 2017
    Posts:
    22
    Hello All.

    We will be doing some work on our services today that will result in some downtime for CRUD operations. Delivery of settings will not be impacted.
     
  11. OnlyForDream

    OnlyForDream

    Joined:
    Aug 19, 2017
    Posts:
    2
    When can I create the environment? It is still unavailable.
     
  12. peterle_unity

    peterle_unity

    Unity Technologies

    Joined:
    Oct 3, 2017
    Posts:
    8
    We expect environment creation be restored tomorrow, or this Friday at the latest. We apologize for the inconvenience - we will update this thread when service is fully restored.
     
  13. yadanathiri

    yadanathiri

    Unity Technologies

    Joined:
    Dec 29, 2016
    Posts:
    2
    The environment creation has been restored. Thank you.
     
  14. Gamedelta

    Gamedelta

    Joined:
    Dec 29, 2019
    Posts:
    5
    Doesn't work in dashboard or editor
     
  15. OnlyForDream

    OnlyForDream

    Joined:
    Aug 19, 2017
    Posts:
    2
    Still not Work
     
  16. sergpxng

    sergpxng

    Joined:
    Dec 3, 2020
    Posts:
    1
    Currently, even our old configs seem to be down.

    On Pull action within Unity Remote Config tab:
    Failed to fetch remote configurations: HTTP/1.1 500 Internal Server Error


    Remote Config Environments tab within Unity Dashboard is also down:
    Error Loading Environments
    Please try again

    Update:
    The servers seem to be back up again! Thanks
     
    Last edited: Aug 16, 2021
  17. tagh

    tagh

    Unity Technologies

    Joined:
    Aug 16, 2017
    Posts:
    22
    Hello All,


    The updates to the new Unity Environments Services have been completed for Remote Config.

    Full environments functionality is available via the WebUI (Dashboard)
    • Create and Delete via the Dashboard

      • Only Owners and Manager of an Org can Create and Delete the Environments
    • Default is always `production`



    • Environments in your Runtime can be requested via the EnvironmentID

      • ConfigManager.SetEnvironmentID

      • Can get the Parameters such as EnvironmentID via the URL on the Dashboard



    In this example screenshot.

    EnvironmentID (Green Highlight) for the environment named development is: c116434e-fec3-11eb-9a03-0242ac130003


    We are working to enable API access, and will be making updates to the Remote Config package.
     
  18. Tasty_world_conf

    Tasty_world_conf

    Joined:
    Jul 27, 2020
    Posts:
    6
    Hello All,

    When API access is restored and the Remote Config package is updated?
     
  19. JeffDUnity3D

    JeffDUnity3D

    Unity Technologies

    Joined:
    May 2, 2017
    Posts:
    14,446
    Are you using the API? Sorry I didn't understand your question.
     
  20. Tasty_world_conf

    Tasty_world_conf

    Joined:
    Jul 27, 2020
    Posts:
    6
    When Remote Config package is updated and issue with
    Failed to fetch remote config: HTTP/1.1 502 Bad Gateway
    HTTP/1.1 502 Bad Gateway

    wiil be solved?
     
  21. JeffDUnity3D

    JeffDUnity3D

    Unity Technologies

    Joined:
    May 2, 2017
    Posts:
    14,446
    Please share a screenshot, and the code you are using. When do you see this error?
     
  22. Tasty_world_conf

    Tasty_world_conf

    Joined:
    Jul 27, 2020
    Posts:
    6
    upload_2021-8-26_10-4-34.png upload_2021-8-26_10-6-10.png
    I am using your package

    "We are working to enable API access, and will be making updates to the Remote Config package"

    It said that you will update the package, this package still not work(when i push, dashbord still clean) and not updated.

    I want to know when the package will be updated.
     
  23. JeffDUnity3D

    JeffDUnity3D

    Unity Technologies

    Joined:
    May 2, 2017
    Posts:
    14,446
    Please show a screenshot of your error, as requested. Please show the syntax of the API call that you claim is still failing.
     
  24. Tasty_world_conf

    Tasty_world_conf

    Joined:
    Jul 27, 2020
    Posts:
    6
    1) Im open remote config window
    upload_2021-8-27_12-36-29.png
    2) Click to pull
    upload_2021-8-27_12-45-33.png
    3) Change environment, make some chages and click to push
    upload_2021-8-27_12-48-48.png
    4) Open Dashboard
    upload_2021-8-27_12-49-23.png
    5) And see that dashboard still clean (missing second environment and other settings)
    upload_2021-8-27_12-50-39.png
     
  25. JeffDUnity3D

    JeffDUnity3D

    Unity Technologies

    Joined:
    May 2, 2017
    Posts:
    14,446
    Sorry where are you seeing the Bad Gateway error you mentioned? What version of Remote Config are you using? What you are describing is not related to the Remote Config API.
     
  26. Tasty_world_conf

    Tasty_world_conf

    Joined:
    Jul 27, 2020
    Posts:
    6
    Bad Gateway error was last week, there is no more this error.
    I do not use Remote Config API, I use "standart" remo config and
    and it doesn't update the data in the dashboard.
    upload_2021-8-30_9-24-56.png
     
  27. JeffDUnity3D

    JeffDUnity3D

    Unity Technologies

    Joined:
    May 2, 2017
    Posts:
    14,446
    What if you add the keys in your Dashboard, then Pull from the Editor? What is the runtime behavior? Agreed something seems amiss, but it's working properly for others.
     
  28. Tasty_world_conf

    Tasty_world_conf

    Joined:
    Jul 27, 2020
    Posts:
    6
    For tests i created a new clean project, everything works in it.
    In my work project:
    1) When i want to delete environment, i have error (TryDeleteEnvironment1.png, TryDeleteEnvironment2.png)
    2) When i want to create environment, i have error (TryCreateEnvironment.png)
    3) When i add the key in Dashboard, then Pull from Editor, Editor dont see new key. (No errors in cosole)
    4) When i add the key in Editor and Push, Dashboard dont see new key. (No errors in cosole)

    It seems that the project link in server is cached to the old dashboard on which default environment was not called "production" (Before the changes in the remote configs default environment name)
     

    Attached Files:

  29. JeffDUnity3D

    JeffDUnity3D

    Unity Technologies

    Joined:
    May 2, 2017
    Posts:
    14,446
    Can you provide the Unity ProjectID for your work project? You can just forward it along in a private message, thanks.
     
  30. tagh

    tagh

    Unity Technologies

    Joined:
    Aug 16, 2017
    Posts:
    22
    Hi @Tasty_world_conf

    The ability to Create, Update, and Delete Environments from the Editor (Remote Config Environment Window) is currently not available, and only is available right now via the Web Dashboard. https://dashboard.unity3d.com/remote-config

    We are working on releasing a new preview, and verified version of the Remote Config Package currently. With the new version of the package the initialization and configuration instructions will be updated to illustrate this new flow.

    Please let us know if you were able to bypass the errors and continue on with your Remote Config integration, or have any additional questions!
     
  31. TheMeatTree

    TheMeatTree

    Joined:
    Jun 20, 2018
    Posts:
    1
    It's not a problem for us to have the production environment as default, but the problem is that the one that was automatically renamed to "production" was not the production one. I see that I can add and delete environments, but can I rename them? I'd like to keep the ids because we have live clients that reference them by ids
     
  32. tagh

    tagh

    Unity Technologies

    Joined:
    Aug 16, 2017
    Posts:
    22
    Hi @dz_unity606 editing environment names is not currently supported by the environments service. If you would like to DM me the details, ProjectID and EnvironmentID I can take a look at getting it renamed correctly for you.
     
  33. bfox

    bfox

    Joined:
    Jun 30, 2014
    Posts:
    21
    Code (CSharp):
    1.  if (!AuthenticationService.Instance.IsSignedIn)
    2.                  {
    3.                      await AuthenticationService.Instance.SignInAnonymouslyAsync();
    4.                  }
    On Android we get

    [Authentication]: [ErrorCode:1] Unity.Services.Core.RequestFailedException: Network Error: SSL CA certificate error
    UnityEngine.Logger:Log(LogType, String, Object) Unity.Services.Authentication.Utilities.Logger:LogException(Exception)
    Unity.Services.Authentication.AuthenticationAsyncOperation:Fail(Exception)
    Unity.Services.Authentication.AuthenticationServiceInternal:HandleServerError(AuthenticationAsyncOperation, IWebRequest`1)
    Unity.Services.Authentication.AuthenticationServiceInternal:SignInResponseReceived(AuthenticationAsyncOperation, IWebRequest`1)
    System.Action`1:Invoke(T) Unity.Services.Authentication.Utilities.WebRequest`1:RequestCompleted(AsyncOperation)
    UnityEngine.AsyncOperation:InvokeCompletionEvent()


    full code
    Code (CSharp):
    1.                 var environment = "production";
    2.                 var options = new InitializationOptions();
    3.                 options.SetEnvironmentName(environment);
    4.          
    5.                 await UnityServices.InitializeAsync(options);
    6.          
    7.                 if (!AuthenticationService.Instance.IsSignedIn)
    8.                 {
    9.                     await AuthenticationService.Instance.SignInAnonymouslyAsync();
    10.                 }


    [Authentication]: Well-known keys request failed (attempt: 0): 0, SSL CA certificate error
    UnityEngine.Logger:LogWarning(String, Object)
    Unity.Services.Authentication.AuthenticationServiceInternal:WellKnownKeysReceived(AuthenticationAsyncOperation, IWebRequest`1, Int32)
    Unity.Services.Authentication.<>c__DisplayClass48_0:<GetWellKnownKeys>b__0(IWebRequest`1)
    System.Action`1:Invoke(T) Unity.Services.Authentication.Utilities.WebRequest`1:RequestCompleted(AsyncOperation)
    UnityEngine.AsyncOperation:InvokeCompletionEvent()


    Unity 2020.3.18f1

    {
    "dependencies": {
    "com.unity.2d.sprite": "1.0.0",
    "com.unity.addressables": "1.19.6",
    "com.unity.ads": "3.7.5",
    "com.unity.ads.ios-support": "1.0.0",
    "com.unity.analytics": "3.6.11",
    "com.unity.cinemachine": "2.8.0",
    "com.unity.device-simulator": "3.0.2-preview",
    "com.unity.ide.rider": "3.0.7",
    "com.unity.inputsystem": "1.1.1",
    "com.unity.mobile.notifications": "1.4.2",
    "com.unity.probuilder": "4.5.2",
    "com.unity.progrids": "3.0.3-preview.6",
    "com.unity.purchasing": "4.0.3",
    "com.unity.quicksearch": "3.0.0-preview.16",
    "com.unity.recorder": "4.0.0-pre.1",
    "com.unity.remote-config": "3.0.0-pre.4",
    "com.unity.render-pipelines.universal": "10.6.0",
    "com.unity.searcher": "4.7.0-preview",
    "com.unity.services.core": "1.1.0-pre.9",
    "com.unity.test-framework": "1.1.29",
    "com.unity.textmeshpro": "3.2.0-pre.1",
    "com.unity.timeline": "1.6.2",
    "com.unity.ugui": "1.0.0",
    "com.unity.modules.ai": "1.0.0",
    "com.unity.modules.androidjni": "1.0.0",
    "com.unity.modules.animation": "1.0.0",
    "com.unity.modules.assetbundle": "1.0.0",
    "com.unity.modules.audio": "1.0.0",
    "com.unity.modules.cloth": "1.0.0",
    "com.unity.modules.director": "1.0.0",
    "com.unity.modules.imageconversion": "1.0.0",
    "com.unity.modules.imgui": "1.0.0",
    "com.unity.modules.jsonserialize": "1.0.0",
    "com.unity.modules.particlesystem": "1.0.0",
    "com.unity.modules.physics": "1.0.0",
    "com.unity.modules.physics2d": "1.0.0",
    "com.unity.modules.screencapture": "1.0.0",
    "com.unity.modules.terrain": "1.0.0",
    "com.unity.modules.terrainphysics": "1.0.0",
    "com.unity.modules.tilemap": "1.0.0",
    "com.unity.modules.ui": "1.0.0",
    "com.unity.modules.uielements": "1.0.0",
    "com.unity.modules.umbra": "1.0.0",
    "com.unity.modules.unityanalytics": "1.0.0",
    "com.unity.modules.unitywebrequest": "1.0.0",
    "com.unity.modules.unitywebrequestassetbundle": "1.0.0",
    "com.unity.modules.unitywebrequestaudio": "1.0.0",
    "com.unity.modules.unitywebrequesttexture": "1.0.0",
    "com.unity.modules.unitywebrequestwww": "1.0.0",
    "com.unity.modules.vehicles": "1.0.0",
    "com.unity.modules.video": "1.0.0",
    "com.unity.modules.vr": "1.0.0",
    "com.unity.modules.wind": "1.0.0",
    "com.unity.modules.xr": "1.0.0"
    },
    "scopedRegistries": []
    }
     
  34. JeffDUnity3D

    JeffDUnity3D

    Unity Technologies

    Joined:
    May 2, 2017
    Posts:
    14,446
    Can you share the documentation that you are following for the Authentication Service?
     
  35. bfox

    bfox

    Joined:
    Jun 30, 2014
    Posts:
    21
    Library\PackageCache\com.unity.remote-config-runtime@3.0.0-pre.10\Documentation~\CodeIntegration.md


    ## Initialization
    The Remote Config package depends on Unity's authentication and core services.
    These dependencies require a small amount of user code for proper configuration.

    ```c#
    using Unity.Services.Authentication;
    using Unity.Services.Core;
    using System.Threading.Tasks;

    async Task InitializeRemoteConfigAsync()
    {
    // initialize handlers for unity game services
    await UnityServices.InitializeAsync();

    // remote config requires authentication for managing environment information
    if (!AuthenticationService.Instance.IsSignedIn)
    {
    await AuthenticationService.Instance.SignInAnonymouslyAsync();
    }
    }
    ```

    or in Library\PackageCache\com.unity.remote-config@3.0.0-pre.4\Documentation~\CodeIntegration.md

    and in Library\PackageCache\com.unity.services.core@1.1.0-pre.8\Documentation~\index.md

    ### Initialize game services
    To initialize all game services at once you just have to call `UnityServices.InitializeAsync()`.
    It returns a `Task` that enables you to monitor the initialization's progression.

    #### Example
    ```cs
    using System;
    using Unity.Services.Core;
    using Unity.Services.Core.Environments;
    using UnityEngine;

    public class InitializeUnityServices : MonoBehaviour
    {
    public string environment = "production";

    async void Start()
    {
    try
    {
    var options = new InitializationOptions()
    .SetEnvironmentName(environment);

    await UnityServices.InitializeAsync(options);
    }
    catch (Exception exception)
    {
    // An error occured during services initialization.
    }
    }
    }
    ```
     
    Last edited: Oct 4, 2021
  36. JeffDUnity3D

    JeffDUnity3D

    Unity Technologies

    Joined:
    May 2, 2017
    Posts:
    14,446
  37. bfox

    bfox

    Joined:
    Jun 30, 2014
    Posts:
    21
    Yes in browser open ok. and certificate valid.
    manufacturer:Xiaomi engine_version:unity 2020.3.19, device:Redmi Note 4, connection_type:wifi, client_ts:1633633201,
    and from other users in store.
    On the current release we have disabled this functionality.
    I'll try to pass tests on clean project.

    Android version 7.0
     
  38. bfox

    bfox

    Joined:
    Jun 30, 2014
    Posts:
    21
    • create empty project URP on 2020.3.19.
    • add package "com.unity.remote-config": "3.0.0-pre.4",
    • add script on scene from sample, and add log to canvas text.
    • attach project to cloud fc364690-549a-4c25-b5dc-a1066193f1cd
    • build and run on android
    • take ssl errors
    Code (CSharp):
    1. // -----------------------------------------------------------------------------
    2. //
    3. // This sample example C# file can be used to quickly utilise usage of Remote Config APIs
    4. // For more comprehensive code integration, visit https://docs.unity3d.com/Packages/com.unity.remote-config@latest
    5. //
    6. // -----------------------------------------------------------------------------
    7.  
    8. using System;
    9. using System.Threading.Tasks;
    10. using TMPro;
    11. using Unity.RemoteConfig;
    12. using Unity.Services.Authentication;
    13. using Unity.Services.Core;
    14. using UnityEngine;
    15.  
    16.  
    17. public class ExampleSample : MonoBehaviour
    18. {
    19.     public TextMeshProUGUI textDebug;
    20.     public struct userAttributes {}
    21.     public struct appAttributes {}
    22.  
    23.     async void Start()
    24.     {
    25.         Log("Start");
    26.         try
    27.         {
    28.             Log("InitializeAsync");
    29.             // initialize handlers for unity game services
    30.             await UnityServices.InitializeAsync();
    31.  
    32.             // remote config requires authentication for managing environment information
    33.             if (!AuthenticationService.Instance.IsSignedIn)
    34.             {
    35.                 Log("IsSignedIn");
    36.                 await AuthenticationService.Instance.SignInAnonymouslyAsync();
    37.             }
    38.  
    39.             Log("FetchConfigs");
    40.             ConfigManager.FetchCompleted += ConfigManager_FetchCompleted;
    41.             ConfigManager.FetchConfigs(new userAttributes(), new appAttributes());
    42.         }
    43.         catch (Exception e)
    44.         {
    45.             textDebug.text = e.ToString();
    46.             Debug.LogException(e);
    47.         }
    48.     }
    49.  
    50.     void ConfigManager_FetchCompleted(ConfigResponse configResponse)
    51.     {
    52.         Log("ConfigManager_FetchCompleted");
    53.         switch (configResponse.requestOrigin)
    54.         {
    55.             case ConfigOrigin.Default:
    56.                 Log("Default values will be returned");
    57.                 break;
    58.             case ConfigOrigin.Cached:
    59.                 Log("Cached values loaded");
    60.                 break;
    61.             case ConfigOrigin.Remote:
    62.                 Log("Remote Values changed");
    63.                 Log("ConfigManager.appConfig fetched: " + ConfigManager.appConfig.config.ToString());
    64.                 break;
    65.         }
    66.  
    67.         textDebug.text += "GET Setting0:"+ConfigManager.appConfig.GetString("Setting0", "Not from remote");
    68.     }
    69.  
    70.     private void Log(string message)
    71.     {
    72.         textDebug.text += message + "\n";
    73.         Debug.Log(message);
    74.     }
    75. }

    error1
    Code (Json):
    1.  
    2. {
    3.     "report_id": "hOFUXHwB4Gbuh2DLg4Z2",
    4.     "app_build": "",
    5.     "install_mode": "dev_release",
    6.     "install_store": "",
    7.     "name": "com.DefaultCompany.TestUnityRemoute01",
    8.     "version": "0.1",
    9.     "build_guid": "48602dcb6cc39454c9dc2f9fbefa2bd7",
    10.     "build_tags": [],
    11.     "client_report_id": "826bb3cfdf5cabad4b99dfc5453a72eb",
    12.     "client_ts": 1633636612553,
    13.     "userid": "23b617d93451410c6a0cdac89d16b588",
    14.     "debug_device": false,
    15.     "cpu": "ARM64 FP ASIMD AES",
    16.     "cpu_count": 8,
    17.     "cpu_freq": 2016,
    18.     "device_info_flags": 50333761,
    19.     "rooted_or_jailbroken": false,
    20.     "device_model": "Xiaomi/Redmi Note 4/mido",
    21.     "device_ram": 2846,
    22.     "screen_size": "1080 x 1920",
    23.     "screen_dpi": 480,
    24.     "refresh_rate": 60,
    25.     "sensor_flags": 183,
    26.     "system_language": "ru",
    27.     "device_type": 1,
    28.     "device_vram": 1024,
    29.     "enabled_vr_devices": [],
    30.     "gpu_api": 11,
    31.     "gpu_caps": 5242815,
    32.     "gpu_copy_texture_support": 31,
    33.     "gpu_device_id": 0,
    34.     "gpu_vendor_id": 0,
    35.     "gpu_driver": "V@145.0 (GIT@I3d52eaf367)",
    36.     "gpu_max_cubemap_size": 16384,
    37.     "gpu_max_texture_size": 16384,
    38.     "gfx": "Adreno (TM) 506",
    39.     "gpu_render_texture_support": 511,
    40.     "gpu_shader_caps": 50,
    41.     "gpu_supported_render_target_count": 8,
    42.     "gpu_texture_format_support": 1017,
    43.     "gpu_vendor": "Qualcomm",
    44.     "gpu_version": "OpenGL ES 3.2",
    45.     "is_editor": false,
    46.     "is_fullscreen": true,
    47.     "is_wsar_remote": false,
    48.     "is_ar_app": false,
    49.     "localprojectid": "6172c6e054d75e140a2df4ab50b3eb4e",
    50.     "os_family": 0,
    51.     "os": "Android OS 7.0 / API-24 (NRD90M/V11.0.2.0.NCFMIXM)",
    52.     "platform": "AndroidPlayer",
    53.     "platformid": 11,
    54.     "appid": "fc364690-549a-4c25-b5dc-a1066193f1cd",
    55.     "screen_orientation": 1,
    56.     "scripting_backend": "Mono",
    57.     "sessionid": 3132155729622182400,
    58.     "sdk_ver": "2020.3.19f1",
    59.     "vr_device_name": "",
    60.     "vr_device_model": "",
    61.     "logs_supported": true,
    62.     "user_metadata": [],
    63.     "log_messages": [],
    64.     "ts": 1633636611786,
    65.     "user_agent": "UnityPlayer/2020.3.19f1 (UnityWebRequest/1.0, libcurl/7.75.0-DEV)",
    66.     "project_name": "TestUnityRemoute01",
    67.     "crash_report_hash": "f618aad45d8e71bc861f05ea80f10875",
    68.     "managed_exception": {
    69.         "type": "RequestFailedException",
    70.         "message": "RequestFailedException: Network Error: SSL CA certificate error",
    71.         "stack_trace": "System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () (at <a1e9f114a6e64f4eacb529fc802ec93d>:0)\nSystem.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Threading.Tasks.Task task) (at <a1e9f114a6e64f4eacb529fc802ec93d>:0)\nSystem.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Threading.Tasks.Task task) (at <a1e9f114a6e64f4eacb529fc802ec93d>:0)\nSystem.Runtime.CompilerServices.TaskAwaiter.ValidateEnd (System.Threading.Tasks.Task task) (at <a1e9f114a6e64f4eacb529fc802ec93d>:0)\nSystem.Runtime.CompilerServices.TaskAwaiter.GetResult () (at <a1e9f114a6e64f4eacb529fc802ec93d>:0)\nExampleSample+<Start>d__3.MoveNext () (at <2d34ee890cf843d38f4194c4f9e024e4>:0)\nUnityEngine.Debug:LogException(Exception)\n<Start>d__3:MoveNext()\nSystem.Threading.Tasks.TaskCompletionSource`1:TrySetException(Exception)\nUnity.Services.Core.Internal.<>c__DisplayClass1_0:<AsTask>g__CompleteTask|0(IAsyncOperation)\nUnity.Services.Core.Internal.AsyncOperation:Fail(Exception)\nUnity.Services.Authentication.AuthenticationAsyncOperation:Fail(Exception)\nUnity.Services.Authentication.AuthenticationAsyncOperation:Fail(Int32, String, Exception)\nUnity.Services.Authentication.AuthenticationServiceInternal:HandleServerError(AuthenticationAsyncOperation, IWebRequest`1)\nUnity.Services.Authentication.AuthenticationServiceInternal:SignInResponseReceived(AuthenticationAsyncOperation, IWebRequest`1)\nUnity.Services.Authentication.<>c__DisplayClass64_0:<StartSigningIn>b__1(IWebRequest`1)\nUnity.Services.Authentication.Utilities.WebRequest`1:RequestCompleted(Int64, Boolean, Boolean, String, String, IDictionary`2)\nUnity.Services.Authentication.Utilities.WebRequest`1:RequestCompleted(AsyncOperation)\nUnityEngine.AsyncOperation:InvokeCompletionEvent()\n",
    72.         "native_thread_info": null
    73.     },
    74.     "native_crash": null,
    75.     "counter": 1
    76. }
    77.  
    and error 2
    Code (CSharp):
    1. {"report_id":"pnhUXHwBn4Ipuyxig7yX","app_build":"","install_mode":"dev_release","install_store":"","name":"com.DefaultCompany.TestUnityRemoute01","version":"0.1","build_guid":"48602dcb6cc39454c9dc2f9fbefa2bd7","build_tags":[],"client_report_id":"b13a56e99930bbef89643fc16b9b5ff4","client_ts":1633636612435,"userid":"23b617d93451410c6a0cdac89d16b588","debug_device":false,"cpu":"ARM64 FP ASIMD AES","cpu_count":8,"cpu_freq":2016,"device_info_flags":50333761,"rooted_or_jailbroken":false,"device_model":"Xiaomi/Redmi Note 4/mido","device_ram":2846,"screen_size":"1080 x 1920","screen_dpi":480,"refresh_rate":60,"sensor_flags":183,"system_language":"ru","device_type":1,"device_vram":1024,"enabled_vr_devices":[],"gpu_api":11,"gpu_caps":5242815,"gpu_copy_texture_support":31,"gpu_device_id":0,"gpu_vendor_id":0,"gpu_driver":"V@145.0 (GIT@I3d52eaf367)","gpu_max_cubemap_size":16384,"gpu_max_texture_size":16384,"gfx":"Adreno (TM) 506","gpu_render_texture_support":511,"gpu_shader_caps":50,"gpu_supported_render_target_count":8,"gpu_texture_format_support":1017,"gpu_vendor":"Qualcomm","gpu_version":"OpenGL ES 3.2","is_editor":false,"is_fullscreen":true,"is_wsar_remote":false,"is_ar_app":false,"localprojectid":"6172c6e054d75e140a2df4ab50b3eb4e","os_family":0,"os":"Android OS 7.0 / API-24 (NRD90M/V11.0.2.0.NCFMIXM)","platform":"AndroidPlayer","platformid":11,"appid":"fc364690-549a-4c25-b5dc-a1066193f1cd","screen_orientation":1,"scripting_backend":"Mono","sessionid":3132155729622182400,"sdk_ver":"2020.3.19f1","vr_device_name":"","vr_device_model":"","logs_supported":true,"user_metadata":[],"log_messages":[],"ts":1633636611626,"user_agent":"UnityPlayer/2020.3.19f1 (UnityWebRequest/1.0, libcurl/7.75.0-DEV)","project_name":"TestUnityRemoute01","crash_report_hash":"85a1b44f543d81d977fba6a5a3d01c0b","managed_exception":{"type":"","message":"[Authentication]: [ErrorCode:1] Unity.Services.Core.RequestFailedException: Network Error: SSL CA certificate error","stack_trace":"","native_thread_info":null},"native_crash":null,"counter":1}
     
  39. bfox

    bfox

    Joined:
    Jun 30, 2014
    Posts:
    21
  40. bfox

    bfox

    Joined:
    Jun 30, 2014
    Posts:
    21
    from android logcat
    2021.10.07 23:24:49.679 2128 2128 Debug wpa_supplicant CTRL-DEBUG: global_ctrl_sock-sendto: sock=8 sndbuf=229376 outq=0 send_len=48
    2021.10.07 23:24:49.769 28120 28158 Error Unity Curl error 60: Cert verify failed: UNITYTLS_X509VERIFY_FLAG_EXPIRED
    2021.10.07 23:24:49.769 28120 28158 Error Unity Curl error 60: Cert verify failed: UNITYTLS_X509VERIFY_FLAG_EXPIRED
    2021.10.07 23:24:49.805 28120 28139 Info Unity [Authentication]: [WebResponse] GET https://api.prd.identity.corp.unity3d.com/.well-known/jwks.json
    2021.10.07 23:24:49.805 28120 28139 Info Unity
     
  41. JeffDUnity3D

    JeffDUnity3D

    Unity Technologies

    Joined:
    May 2, 2017
    Posts:
    14,446
    This might apply https://forum.unity.com/threads/cur...x509verify_flag_expired.1176929/#post-7548508
     
  42. bfox

    bfox

    Joined:
    Jun 30, 2014
    Posts:
    21
    Now there is no way to use remote settings on old android < 7.1?
    Will the unity team provide a solution to the problem?
    I have an idea for a solution - change this urls from package to self proxy host:
    Code (CSharp):
    1.  class AuthenticationPackageInitializer : IInitializablePackage
    2.     {
    3. #if AUTHENTICATION_TESTING_STAGING_UAS
    4.         const string k_UasHost = "https://api.stg.identity.corp.unity3d.com";
    5. #else
    6.         const string k_UasHost = "https://api.prd.identity.corp.unity3d.com";
    7. #endif
    8.  
     
  43. JeffDUnity3D

    JeffDUnity3D

    Unity Technologies

    Joined:
    May 2, 2017
    Posts:
    14,446
    Can you try with the latest RC package? 2.1.2 was released yesterday and should help here.
     
  44. bfox

    bfox

    Joined:
    Jun 30, 2014
    Posts:
    21
    without auth package and 3.0+ remoute
    Code (CSharp):
    1.             // // initialize handlers for unity game services
    2.             // await UnityServices.InitializeAsync();
    3.             //
    4.             // // remote config requires authentication for managing environment information
    5.             // if (!AuthenticationService.Instance.IsSignedIn)
    6.             // {
    7.             //     Log("IsSignedIn");
    8.             //     await AuthenticationService.Instance.SignInAnonymouslyAsync();
    9.             // }
    10.  
    on com.unity.remote-config-runtime@2.1.2 app config fetched without ssl error
    https://remote-config-prd.uca.cloud.unity3d.com/settings ssl certificate work on android 7.0
     
  45. JeffDUnity3D

    JeffDUnity3D

    Unity Technologies

    Joined:
    May 2, 2017
    Posts:
    14,446
    Glad it's working for you!
     
  46. hippogames

    hippogames

    Joined:
    Feb 5, 2015
    Posts:
    228
    @JeffDUnity3D Hi, how should I edit conditional values now? Conditions are now hidden in Unity editor window (this is... bad), and I also don't see new campaigns there. When I was trying to change values in my campaign using web-dashboard, they are shown empty after editing the campaign. I'm using conditions to provide platform-specific values to my users, and this seems to be ruined now. So, what are my further actions?
    upload_2021-11-5_21-18-5.png
     
  47. JeffDUnity3D

    JeffDUnity3D

    Unity Technologies

    Joined:
    May 2, 2017
    Posts:
    14,446
    So far we have not been able to reproduce. Can you send me a private message with your Unity ProjectID? We will check.
     
  48. JeffDUnity3D

    JeffDUnity3D

    Unity Technologies

    Joined:
    May 2, 2017
    Posts:
    14,446
    @hippogames Update - we believe we have identified the issue and are working on it. I will post here with updates.
     
  49. JeffDUnity3D

    JeffDUnity3D

    Unity Technologies

    Joined:
    May 2, 2017
    Posts:
    14,446
    We have identified the fix which should now be live, can you confirm? Apologies on the inconvenience, and thanks for the heads up!
     
  50. hippogames

    hippogames

    Joined:
    Feb 5, 2015
    Posts:
    228
    @JeffDUnity3D Hi! Unfortunately, I can't even sign-in now, nothing happens when I press "Sign in" or "Create account" (tried different browsers)
    upload_2021-11-10_20-4-49.png