Search Issue Tracker
Fixed
Fixed in 1.22.1, 2.1.1
Votes
1
Found in [Package]
1.22.1
2.1.0
Issue ID
ADDR-3695
Regression
No
The validity of the multiple handles can behave differently based on the load/release operations order, when multiple Addressables.LoadAssetAsync and Addressables.Release are used to load and release the same Addressable Asset
How to reproduce:
1. Open the “AddressablesReleaseBug“ project
2. Open the “SampleScene”
3. Open the TestRunner window (Window → General → TestRunner)
4. Press “Run All” button
5. Observe that all of the tests failed
6. Open the “NewTestScript” script (Assets → Tests → NewTestScript.cs)
7. Comment out following lines of code under the DemonstrateAddressablesLoadReleaseBug function:
{{//Load 1}}
{{var handle1 = Addressables.LoadAssetAsync<TextAsset>("TestAsset.txt");}}
{{Assert.IsTrue(handle1.IsValid());}}
{{handle1.WaitForCompletion();}}
{{Assert.IsTrue(handle1.IsDone);}}
{{// Free 1}}
{{SafeRelease(handle1);}}
{{Assert.IsFalse(handle1.IsValid());}}
8. Repeat steps 3 and 4
9. Observe that all of the tests succeeded
Expected result: Addressables.release on the same asset should abide by the reference count on it and each handle should be able to be released only once to avoid confusion
Actual result: Addressables.release on the same asset does not follow the reference count on it and each handle is able to be released more than once so there is a need to monitor the isValid boolean flag to invalidate before releasing
Reproducible in: 2021.3.38f1, 2022.3.28f1, 6000.0.1f1
Reproduced on: Windows 10, macOS 14.4 (M1)
Not reproduced on: No other environments tested
Add comment
All about bugs
View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.
Latest issues
- Opening Terrain Prefab in Prefab Editing Mode throws "NullReferenceException" error
- [Search] Dragging query pills put them behind the search text field
- A CustomPropertyDrawer that returns a PropertyField for a property named the same as a child field will not render all child fields
- Graphics Settings shows default values instead of the real values in the Rendering Debugger when Volume.profile is assigned via script
- Deleting multiple Tags throws “NullReferenceException”, and "Retrieving array element that was out of bounds" errors when holding the Enter key
Resolution Note (fix version 2.1.1):
Addresables API updated: `Addressables.Release(handle)` is deprecated, use `AsyncOperationHandle.Release()` instead to ensure that internal state is properly reset