Skip to content

eSignet-Go: Bug — Validation error messages do not re-translate when the language is changed after the error is shown #2285

Description

@santhoshsunder

Short Summary of the Bug

On the eSignet-Go login screens, a validation error message is rendered once and then frozen in whatever language was active when it appeared. If the user switches the UI language while the error is on screen, all other UI text (headings, labels, buttons) updates to the new language, but the already-displayed error message stays in the old language.

Description

Environment:
eSignet-Go — oidc-ui login screen (Login with OTP → UIN/VID field).
Providers: https://esignet-go.esqa.mosip.net (mock), https://esignet-go-sunbird.esqa.mosip.net (mosip), https://esignet-go-mosipid1.esqa.mosip.net (sunbird).

Steps to reproduce (case A — "numbers only" error):

  1. Open a relying party (e.g. https://healthservices-go.esqa.mosip.net) → Sign In with eSignetLogin with OTPUIN/VID.
  2. With the language set to English, type letters (e.g. abcd) into the UIN/VID field and blur it to trigger the error UIN/VID must contain numbers only.
  3. Without editing the field, switch the language to Hindi via the language selector.

Steps to reproduce (case B — "required" error):

  1. Same screen, language set to Hindi, clear the UIN/VID field and blur it to trigger the required error यह फ़ील्ड आवश्यक है.
  2. Without editing the field, switch the language to English.

Expected Behavior:
When the language changes, the visible validation error message re-renders in the newly selected language (like every other string on the screen).

Actual Behavior:
The error text does not re-translate — it remains in the language it was generated in, even though the field label, heading and buttons all switch. Confirmed both directions:

  • English error UIN/VID must contain numbers only stays English after switching the UI to Hindi.
  • Hindi error यह फ़ील्ड आवश्यक है stays Hindi after switching the UI to English.

Likely root cause:
The validation message string is computed and stored at validation time rather than being resolved from an i18n key reactively, so a language change does not recompute it. This affects the field-level validation errors generally (required, numbers-only, and other validators), across the shared oidc-ui, hence all three identity systems.

Attachments / Evidence / Links

Case A — UI switched to Hindi, but the error stays English ("UIN/VID must contain numbers only"):
English error not re-translated to Hindi

Case B — UI switched to English, but the error stays Hindi ("यह फ़ील्ड आवश्यक है"):
Hindi error not re-translated to English

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

Type

Fields

Priority

Medium

End Date

None yet

Severity

None yet

Complexity

None yet

Start Date

None yet

Original Estimate

None yet

Time Tracking

None yet

Resolved By

None yet

Projects

No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions