Asset Group Culture not applying

I’m having trouble using Asset Groups for localizing audio assets in UE 4.25 and 4.26. I want the user to be able to select the text language and voice language as separate settings.

When my culture/language is equal to the Audio culture then the correct localized assets play (for example, if all three are set to “de-DE” then I hear the German audio assets).

But when these settings are not equal to each other then I always hear the English audio instead (for example if language/locale is “ru-RU” and Audio asset group is “de-DE” then the non-localized English source audio plays). In this case I also see some warnings in the log that may be related:

[2020.11.24-16.25.41:395][  0]LogAudio: Display: Audio Device unregistered from world 'None'.
[2020.11.24-16.25.41:397][  0]LogUObjectHash: Compacting FUObjectHashTables data took   0.53ms
[2020.11.24-16.25.41:417][  0]LogPackageLocalizationCache: Warning: Skipping the cache update for 24 pending package path(s) due to a cache request from a non-game thread. Some localized packages may be missed for this query.
[2020.11.24-16.25.41:417][  0]LogPackageLocalizationCache: Warning: Skipping the cache update for 24 pending package path(s) due to a cache request from a non-game thread. Some localized packages may be missed for this query.
[2020.11.24-16.25.41:417][  0]LogPackageLocalizationCache: Warning: Skipping the cache update for 24 pending package path(s) due to a cache request from a non-game thread. Some localized packages may be missed for this query.
[2020.11.24-16.25.41:417][  0]LogPackageLocalizationCache: Warning: Skipping the cache update for 24 pending package path(s) due to a cache request from a non-game thread. Some localized packages may be missed for this query.
[2020.11.24-16.25.41:417][  0]LogAudio: Display: Audio Device (ID: 1) registered with world 'MainMenu'.

I am testing it in a standalone packaged build.

More details:
I have created an Asset Group for Audio based on the documentation, in DefaultGame.ini I have:

[Internationalization.AssetGroupClasses]
+Audio=SoundWave
+Audio=DialogueWave
+Audio=DialogueVoice
+Audio=SoundCue

And in DefaultGameUserSettings.ini I have the following (because the setting doesn’t get created by the Kismet library otherwise)

[Internationalization.AssetGroupCultures]
+Audio=en-US

I am using the Kismet localization library to update the settings from C++, based on selection from UMG widgets, like this:
For text language:

UKismetInternationalizationLibrary::SetCurrentLanguageAndLocale(GetCultureFromDisplayName(SelectedItem), true);

For audio language:

UKismetInternationalizationLibrary::SetCurrentAssetGroupCulture(FName(TEXT("Audio")), GetCultureFromDisplayName(SelectedItem), true);

This works fine in terms of updating GameUserSettings.ini, but results in the above-mentioned problems when trying to play audio.

I’m hoping that I am missing something obvious :slight_smile:

I found the solution - disabling the “Async Loading Thread Enabled” in the project setting fixes it.

The real question, then, is if there is a way to make these two systems work nicely together? Or if there is even any real need to do so?