Compilation Error for Arabic after updating to ex_cldr 2.34

I’m running into the following error when trying to update to the latest ex_cldr. Has anyone else run into the same thing?

Generating Nohara.Cldr for 6 locales named [:ar, :en, :es, :it, :pt, ...] with a default locale named :en

== Compilation error in file lib/nohara/cldr.ex ==
** (RuntimeError) Locale file :ar is invalid - map key "person_names" was not found.
    (ex_cldr 2.34.0) lib/cldr/locale/loader.ex:201: anonymous fn/4 in Cldr.Locale.Loader.assert_valid_keys!/2
    (elixir 1.14.1) lib/enum.ex:2468: Enum."-reduce/3-lists^foldl/2-0-"/3
    (ex_cldr 2.34.0) lib/cldr/locale/loader.ex:199: Cldr.Locale.Loader.assert_valid_keys!/2
    (ex_cldr 2.34.0) lib/cldr/locale/loader.ex:128: Cldr.Locale.Loader.do_get_locale/3
    (ex_cldr 2.34.0) lib/cldr/locale/cache.ex:117: Cldr.Locale.Cache.do_get_locale/2
    (ex_cldr 2.34.0) lib/cldr/config/config.ex:2212: Cldr.Config.decimal_formats_for/2
    (elixir 1.14.1) lib/enum.ex:1658: Enum."-map/2-lists^map/1-0-"/2
    (ex_cldr 2.34.0) lib/cldr/config/config.ex:2199: Cldr.Config.decimal_format_list/1

Just realised that I can remove the stale locale files from disk, forcing a fresh download of the underlying CLDR data:

rm -r priv/cldr  

That fixes the issue.

1 Like

This is a known issue and its driving me crazy because I can’t reproduce it and therefore proving difficult to resolve. When mix installs a new version of the a library I expect (assume?) it will completely remove the old version from the deps folder and therefore also remove the priv/cldr directory.

For reasons I don’t understand, this isn’t true in all cases but I can’t yet work out which cases. If anyone has any ideas on that I’d be hugely appreciative!