Android + iOS Locale Override Issue

Hi! We are currently running Airship 16.0.0 for both iOS and Android. We recently have come across and issue when testing out different localization messages. We have users that can be in Spanish (ES) but also have their phone in English (EN). We will override the user's locale via the Airship SDK when the user logs in. We found that a very specific combination of messages will result in the wrong localization being sent.

When we send this message out to users, the following happens:

English users get the default push "This is broken". Spanish users get the correct in-app landing message that says "span"

We would expect the English users get their localized Message Center message but they do not. The users who do not fall under English and Spanish should get "this is broken". This does work as expected if the English and Spanish message are the same type. For example, both message centers or both in-app messages. For some reason, the Spanish localization works as expected but English users will get the wrong one. Is there any solution around this?


Didn't find what you were looking for?

New post



  • Hi Michael,


    Thank you for contacting Airship Support.


    From your description, I am unable to clearly pinpoint where the issue is.


    Could you please provide an example of the issue? Screenshots and/or video recordings are always best.




    Moin A.
    Airship // Technical Support Engineer

    Comment actions Permalink
  • Hi Moin,

    Here is hopefully a more digestible explanation on the issue.

    When sending a message to all users, if you make each localization, send a different type of message such as:

    EN – Message Center (“This is a EN message center”)

    ES – Landing Message (“This is an ES Landing”)

    Default – Push message (“This is a default push”)


    You would expect all users to get their appropriate localized messages but what happens on both platforms:

    EN – Gets wrong message: Default push message (“This is a default push”)

    ES – Gets correct message: ES Landing Message (“This is an ES Landing”)



    If all the localized messages are the same, then things work as expected. For example:

    EN – Message Center (“This is an EN message center”)

    ES – Message Center (“This is an ES message center”)

    Default – Message Center (“This is a default message center”)

    Note: We are overriding localization within our application. If the user logs in as a Spanish user, we will override their Airship Locale. I have tried this on both Airship 16.0, Airship 16.2, Airship 16.4 and all the same results for both iOS and Android.

    Comment actions Permalink

Please sign in to leave a comment.