Search Issue Tracker

By Design

Votes

0

Found in [Package]

1.21.12

Issue ID

ADDR-3394

Regression

No

Content catalog is always loaded from the last local build when trying to load content

Package: Addressables

-

How to reproduce:
1. Open the attached project “CCD-Cube.zip“
2. Create a new project in UGS
3. Create an Environment named “development“ and an Environment named “production“ with a bucket set to Promotion-only and named "StandaloneOSX" (or "StandaloneWindows64" if using Windows)
4. Setup a link with the created project and Cloud Content Delivery in the Project Settings
5. Create a new Profile in Adressables Profiles (Window > Asset Management > Addressables > Profiles)
6. Set the Remote Bundle Location to Automatic (development)
7. Set the new Profile to Active
8. Build Group to CCD by pressing “Build to CCD“ > “Default Build Script“ in the Addressables Groups window (Window > Asset Management > Addressables > Groups)
9. In the CCD UGS, promote the Release in the environment bucket to the production bucket
10. Change the color of the “Cube” prefab
11. Repeat step 8
12. Change the Remote Bundle Location to Automatic (production) in the Profile options
13. Enter Play Mode and press the “Cube“ button

Expected result: The loaded cube is yellow
Actual result: The loaded cube is red

Reproducible with: 1.21.9, 1.21.12 (2020.3.48f1, 2021.3.26f1, 2022.2.21f1, 2023.1.0b18), 1.21.12 (2023.2.0a16)

Reproduced on: macOS 13.0.1 (Intel), Windows 10 (by reporter)

Note:
- Also reproduced in Player

  1. Resolution Note:

    So, the problem here is that after the Remote Build/Load path is changed, there's no new build that's happening. Those build/load path pairs are built into the content catalog. Loading the local catalog first is intentional. It's the local catalog that tells us where to download the remote catalogs from.

    All you need to do is use the CcdManager API to change the environment/bucket/badge at startup. Setting the build/load to development is fine. Promoting like normal is fine here too. When you want your app to point to something that isn't the development environment, use CcdManager.EnvironmentName, CcdManager.BucketId, and CcdManager.Badge, to set that up before you make an Addressables call. You can use any flags, scripting defines, or RemoteConfig options to do that.

Add comment

Log in to post comment

All about bugs

View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.