Hi Gokulraj,
Following your fix, we renamed the bundle files to labels_am.properties / messages_am.properties (confirmed correct Amharic content inside, e.g. ሙሉ ስም, ጾታ) and re-deployed them to our artifactory pod as follows:
How we deployed the files to artifactory:
- Our artifactory pod runs as a non-root user (
mosip, uid 1001) by default, so resources.zip is write-protected
- We temporarily patched the deployment’s
securityContext to runAsUser: 0 to get write access:
kubectl patch deployment artifactory -n artifactory --patch '{"spec":{"template":{"spec":{"securityContext":{"runAsUser":0}}}}}'
- Extracted the current
resources.zip from the pod, removed the incorrect labels_amh.properties / messages_amh.properties files, confirmed only the correctly-named labels_am.properties / messages_am.properties remained
- Re-zipped and re-uploaded via
kubectl cp, replacing the old resources.zip in /usr/share/nginx/html/artifactory/libs-release-local/reg-client/
- Verified via
unzip -l on the pod that the live zip now only contains the correct _am files (no _amh leftovers)
We then did a completely fresh Registration Client install (deleted old install folder, redownloaded, confirmed no cached files) to make sure it pulled the updated resources.zip, per your earlier note that this only happens at install time.
Result: The client did not crash outright this time — it progressed past the error into normal startup (global params fetch, network checks, login service reached). However, the amh checkbox is still disabled, and we see this specific log line:
2026-07-15 13:03:49,042 ERROR [JavaFX-Launcher] i.m.r.c.ApplicationContext : ResourceBundle not found for configured langcode
Notice the langcode value itself is blank — not amh, not am. eng resolves fine (no error logged for it). Since we’ve confirmed the correctly-named am files are present in the live resources.zip and the install is fresh, this looks like it could be the LanguageAlpha3Code conversion returning empty/null specifically when processing amh, rather than a file-location issue.
Could you help clarify: is there a known issue with this specific alpha-3 code (amh) not mapping correctly via the com.neovisionaries.i18n.LanguageAlpha3Code library, or could this blank value point to something else in the config parsing (e.g., how mosip.optional-languages is split/iterated)?
Our current config:
mosip.supported-languages=eng,amh
mosip.mandatory-languages=eng
mosip.optional-languages=amh
Happy to share more log context or our artifactory deployment YAML if helpful.
Thanks,
Hariharan
logs
2026-07-15 13:03:40,361 INFO [JavaFX-Launcher] i.m.r.c.DaoConfig : REGISTRATION - DAO Config - DB - REGISTRATION - REG - Security setup check is complete & success.
2026-07-15 13:03:40,362 INFO [JavaFX-Launcher] i.m.k.c.s.i.TPMClientCryptoServiceImpl : ccSessionID - TPM - - Getting Asymmetric Key Creation from tpm
2026-07-15 13:03:43,994 INFO [JavaFX-Launcher] i.m.k.k.h.i.KeyStoreImpl : ksSessionId - KeyStoreImpl-Main - KeyStoreImpl - Found Clazz to load for Keystore Impl: io.mosip.kernel.keymanager.hsm.impl.offline.OLKeyStoreImpl
2026-07-15 13:03:43,994 INFO [JavaFX-Launcher] i.m.k.k.h.i.KeyStoreImpl : ksSessionId - KeyStoreImpl-Main - KeyStoreImpl - Successfully loaded Clazz for Keystore Impl: io.mosip.kernel.keymanager.hsm.impl.offline.OLKeyStoreImpl
2026-07-15 13:03:47,328 INFO [JavaFX-Launcher] i.m.k.b.p.f.BioAPIFactory : Starting initialization for vendor mockvendor with params >> {IRIS={version=0.9, threshold=60, args=, classname=io.mosip.mock.sdk.impl.SampleSDK}, FINGER={threshold=60, classname=io.mosip.mock.sdk.impl.SampleSDK, version=0.9, args=}, FACE={threshold=60, classname=io.mosip.mock.sdk.impl.SampleSDK, args=, version=0.9}}
2026-07-15 13:03:47,425 INFO [JavaFX-Launcher] i.m.k.b.p.i.BioProviderImpl_V_0_9 : Successfully registered SDK : sample, BiometricFunction: QUALITY_CHECK
2026-07-15 13:03:47,425 INFO [JavaFX-Launcher] i.m.k.b.p.i.BioProviderImpl_V_0_9 : Successfully registered SDK : sample, BiometricFunction: CONVERT_FORMAT
2026-07-15 13:03:47,425 INFO [JavaFX-Launcher] i.m.k.b.p.i.BioProviderImpl_V_0_9 : Successfully registered SDK : sample, BiometricFunction: EXTRACT
2026-07-15 13:03:47,426 INFO [JavaFX-Launcher] i.m.k.b.p.i.BioProviderImpl_V_0_9 : Successfully registered SDK : sample, BiometricFunction: MATCH
2026-07-15 13:03:47,426 INFO [JavaFX-Launcher] i.m.k.b.p.i.BioProviderImpl_V_0_9 : Successfully registered SDK : sample, BiometricFunction: QUALITY_CHECK
2026-07-15 13:03:47,426 INFO [JavaFX-Launcher] i.m.k.b.p.i.BioProviderImpl_V_0_9 : Successfully registered SDK : sample, BiometricFunction: CONVERT_FORMAT
2026-07-15 13:03:47,426 INFO [JavaFX-Launcher] i.m.k.b.p.i.BioProviderImpl_V_0_9 : Successfully registered SDK : sample, BiometricFunction: EXTRACT
2026-07-15 13:03:47,426 INFO [JavaFX-Launcher] i.m.k.b.p.i.BioProviderImpl_V_0_9 : Successfully registered SDK : sample, BiometricFunction: MATCH
2026-07-15 13:03:47,426 INFO [JavaFX-Launcher] i.m.k.b.p.i.BioProviderImpl_V_0_9 : Successfully registered SDK : sample, BiometricFunction: QUALITY_CHECK
2026-07-15 13:03:47,426 INFO [JavaFX-Launcher] i.m.k.b.p.i.BioProviderImpl_V_0_9 : Successfully registered SDK : sample, BiometricFunction: CONVERT_FORMAT
2026-07-15 13:03:47,426 INFO [JavaFX-Launcher] i.m.k.b.p.i.BioProviderImpl_V_0_9 : Successfully registered SDK : sample, BiometricFunction: EXTRACT
2026-07-15 13:03:47,426 INFO [JavaFX-Launcher] i.m.k.b.p.i.BioProviderImpl_V_0_9 : Successfully registered SDK : sample, BiometricFunction: MATCH
2026-07-15 13:03:47,714 INFO [JavaFX-Launcher] i.m.r.c.RestartController : REGISTRATION - RESTART - RESTART CONTROLLER - REGISTRATION - REG - Initiate Restart Timer started
2026-07-15 13:03:47,714 INFO [JavaFX-Launcher] i.m.r.c.RestartController : REGISTRATION - RESTART - RESTART CONTROLLER - REGISTRATION - REG - Creation of sync restart timer started
2026-07-15 13:03:47,714 INFO [JavaFX-Launcher] i.m.r.s.c.i.JobConfigurationServiceImpl : REGISTRATION - SYNC - Job_Configuration_Service - REGISTRATION - REG - Getting Re-start time started
2026-07-15 13:03:47,730 INFO [JavaFX-Launcher] i.m.r.s.c.i.JobConfigurationServiceImpl : REGISTRATION - SYNC - Job_Configuration_Service - REGISTRATION - REG - Getting Re-start time completed
2026-07-15 13:03:47,732 INFO [JavaFX-Launcher] i.m.r.c.RestartController : REGISTRATION - RESTART - RESTART CONTROLLER - REGISTRATION - REG - Creation of sync restart timer completed
2026-07-15 13:03:47,732 INFO [JavaFX-Launcher] i.m.r.c.RestartController : REGISTRATION - RESTART - RESTART CONTROLLER - REGISTRATION - REG - Initiate Restart Timer completed
2026-07-15 13:03:48,803 INFO [JavaFX-Launcher] i.m.r.u.SoftwareUpdateHandler : Checking for current version started...
2026-07-15 13:03:48,804 INFO [JavaFX-Launcher] i.m.r.u.SoftwareUpdateHandler : Checking for current version completed : 1.2.0.2
2026-07-15 13:03:48,804 INFO [JavaFX-Launcher] i.m.r.u.SoftwareUpdateHandler : Inside updateDerbyDB currentVersion: {} and {} : {} - 1.2.0.2 - mosip.reg.services.current.version - 0
2026-07-15 13:03:48,920 INFO [JavaFX-Launcher] i.m.r.u.SoftwareUpdateHandler : Backup Path found:
2026-07-15 13:03:48,920 INFO [JavaFX-Launcher] i.m.r.u.SoftwareUpdateHandler : Backup folder not found, returning the version as the same:
2026-07-15 13:03:49,042 ERROR [JavaFX-Launcher] i.m.r.c.ApplicationContext : ResourceBundle not found for configured langcode
2026-07-15 13:03:49,046 INFO [JavaFX-Launcher] i.m.r.s.c.i.GlobalParamServiceImpl : Fetching list of global params
2026-07-15 13:03:49,047 INFO [JavaFX-Launcher] i.m.r.d.i.GlobalParamDAOImpl : REGISTRATION - GLOBALPARAMS - GLOBAL_PARAM_DAO_IMPL - REGISTRATION - REG - Fetching list of global params
2026-07-15 13:03:49,131 INFO [JavaFX-Launcher] i.m.r.d.i.GlobalParamDAOImpl : REGISTRATION - GLOBALPARAMS - GLOBAL_PARAM_DAO_IMPL - REGISTRATION - REG - List of global params fetched successfully
2026-07-15 13:03:49,162 INFO [JavaFX-Launcher] i.m.r.u.r.ServiceDelegateUtil : Registration Network Checker had been called --> https://api-internal.sandbox.apinodes.com/v1/syncdata/actuator/health
2026-07-15 13:03:49,441 INFO [JavaFX-Launcher] i.m.r.s.l.i.LoginServiceImpl : REGISTRATION - LOGINSERVICE - REGISTRATION - REG - Started Initial sync
2026-07-15 13:03:49,441 INFO [JavaFX-Launcher] i.m.r.s.s.i.PolicySyncServiceImpl : Entering into get public key method.....
2026-07-15 13:03:49,441 INFO [JavaFX-Launcher] i.m.r.u.r.ServiceDelegateUtil : Registration Network Checker had been called --> https://api-internal.sandbox.apinodes.com/v1/syncdata/actuator/health
2026-07-15 13:03:49,476 INFO [JavaFX-Launcher] i.m.r.d.i.GlobalParamDAOImpl : REGISTRATION - GLOBALPARAMS - GLOBAL_PARAM_DAO_IMPL - REGISTRATION - REG - Get Global Param
2026-07-15 13:03:49,507 INFO [JavaFX-Launcher] i.m.r.d.i.RegistrationCenterDAOImpl : checking if Registration Center details exists and is active
2026-07-15 13:03:49,521 INFO [JavaFX-Launcher] i.m.r.s.s.i.PolicySyncServiceImpl : Calling getCertificate rest call with request params {applicationId=KERNEL, referenceId=SIGN}
2026-07-15 13:03:49,529 INFO [JavaFX-Launcher] i.m.r.u.SoftwareUpdateHandler : Checking for current version started...
2026-07-15 13:03:49,529 INFO [JavaFX-Launcher] i.m.r.u.SoftwareUpdateHandler : Checking for current version completed : 1.2.0.2
2026-07-15 13:03:49,533 INFO [JavaFX-Launcher] i.m.r.u.a.RestClientAuthAdvice : Auth advice triggered to check add authZ token to web service request header...
2026-07-15 13:03:49,533 INFO [JavaFX-Launcher] i.m.r.u.r.AuthTokenUtilService : fetchAuthToken invoked for triggerPoint >>>>> triggerPoint
2026-07-15 13:03:49,544 INFO [JavaFX-Launcher] i.m.r.u.a.RestClientAuthAdvice : Adding authZ token to request header
2026-07-15 13:03:49,544 INFO [JavaFX-Launcher] i.m.r.u.a.RestClientAuthAdvice : Adding of authZ token to request header completed
2026-07-15 13:03:49,743 INFO [JavaFX-Launcher] i.m.r.u.a.ResponseSignatureAdvice : Response signature advice triggered...
2026-07-15 13:03:49,747 INFO [JavaFX-Launcher] i.m.k.k.s.i.KeymanagerServiceImpl : sessionId - applicationId - SERVER-RESPONSE - Request received to getCertificate
2026-07-15 13:03:49,747 INFO [JavaFX-Launcher] i.m.k.k.s.i.KeymanagerServiceImpl : sessionId - referenceId - Optional[SIGN-VERIFY] - Request received to getCertificate
2026-07-15 13:03:49,747 INFO [JavaFX-Launcher] i.m.k.k.s.i.KeymanagerServiceImpl : sessionId - - - Reference Id is present. Will get Certificate from DB store
2026-07-15 13:03:49,747 INFO [JavaFX-Launcher] i.m.k.k.s.i.KeymanagerServiceImpl : sessionId - applicationId - SERVER-RESPONSE - Getting public key from DB Store
2026-07-15 13:03:49,747 INFO [JavaFX-Launcher] i.m.k.k.s.i.KeymanagerServiceImpl : sessionId - timestamp - 2026-07-15T07:33:49.747869600 - Getting public key from DB Store
2026-07-15 13:03:49,748 INFO [JavaFX-Launcher] i.m.k.k.s.i.KeymanagerServiceImpl : sessionId - referenceId - SIGN-VERIFY - Getting public key from DB Store
2026-07-15 13:03:49,748 INFO [JavaFX-Launcher] i.m.k.k.h.KeymanagerDBHelper : sessionId - - - Getting key alias
2026-07-15 13:03:49,761 INFO [JavaFX-Launcher] i.m.k.k.h.KeymanagerDBHelper : sessionId - - - Fetching Key Policy for keyPolicyName(Cache): SERVER-RESPONSE
2026-07-15 13:03:49,781 INFO [JavaFX-Launcher] i.m.k.k.h.KeymanagerDBHelper : sessionId - - - Fetching Key Policy for keyPolicyName(Cache): BASE
2026-07-15 13:03:49,783 INFO [JavaFX-Launcher] i.m.k.k.h.KeymanagerDBHelper : sessionId - SERVER-RESPONSE - SIGN-VERIFY - PreExpireDays found as key policy:20
2026-07-15 13:03:49,802 INFO [JavaFX-Launcher] i.m.k.k.h.KeymanagerDBHelper : sessionId - keyAlias - [KeyAlias(alias=0f1ce02e-84b1-4d04-9c3d-30a2d2f0be9c, applicationId=SERVER-RESPONSE, referenceId=SIGN-VERIFY, keyGenerationTime=2026-04-24T02:55:03, keyExpiryTime=2029-04-23T02:55:03, status=null, certThumbprint=BB127429D1F8152BA6A653FFAF71B32BD613F5151295D3AC4630686EA8E23817, uniqueIdentifier=4EF41783A16A0FA23560E32A551FC53F6CE93242)] - keyAlias
2026-07-15 13:03:49,803 INFO [JavaFX-Launcher] i.m.k.k.h.KeymanagerDBHelper : sessionId - currentKeyAlias - [KeyAlias(alias=0f1ce02e-84b1-4d04-9c3d-30a2d2f0be9c, applicationId=SERVER-RESPONSE, referenceId=SIGN-VERIFY, keyGenerationTime=2026-04-24T02:55:03, keyExpiryTime=2029-04-23T02:55:03, status=null, certThumbprint=BB127429D1F8152BA6A653FFAF71B32BD613F5151295D3AC4630686EA8E23817, uniqueIdentifier=4EF41783A16A0FA23560E32A551FC53F6CE93242)] - currentKeyAlias
2026-07-15 13:03:49,803 INFO [JavaFX-Launcher] i.m.k.k.s.i.KeymanagerServiceImpl : sessionId - currentKeyAlias - 0f1ce02e-84b1-4d04-9c3d-30a2d2f0be9c - CurrentKeyAlias size is one. Will fetch keypair using this alias
2026-07-15 13:03:49,815 INFO [JavaFX-Launcher] i.m.k.k.s.i.KeymanagerServiceImpl : sessionId - keyFromDBStore - 0f1ce02e-84b1-4d04-9c3d-30a2d2f0be9c - Key in DBStore exists for this alias. Fetching Certificate.
2026-07-15 13:03:49,919 INFO [JavaFX-Launcher] i.m.k.k.s.i.KeymanagerServiceImpl : sessionId - applicationId - SERVER-RESPONSE - Request received to getCertificate
2026-07-15 13:03:49,919 INFO [JavaFX-Launcher] i.m.k.k.s.i.KeymanagerServiceImpl : sessionId - referenceId - Optional[SIGN-VERIFY] - Request received to getCertificate
2026-07-15 13:03:49,920 INFO [JavaFX-Launcher] i.m.k.k.s.i.KeymanagerServiceImpl : sessionId - - - Reference Id is present. Will get Certificate from DB store
2026-07-15 13:03:49,920 INFO [JavaFX-Launcher] i.m.k.k.s.i.KeymanagerServiceImpl : sessionId - applicationId - SERVER-RESPONSE - Getting public key from DB Store
2026-07-15 13:03:49,920 INFO [JavaFX-Launcher] i.m.k.k.s.i.KeymanagerServiceImpl : sessionId - timestamp - 2026-07-15T07:33:49.920666600 - Getting public key from DB Store
2026-07-15 13:03:49,920 INFO [JavaFX-Launcher] i.m.k.k.s.i.KeymanagerServiceImpl : sessionId - referenceId - SIGN-VERIFY - Getting public key from DB Store
2026-07-15 13:03:49,920 INFO [JavaFX-Launcher] i.m.k.k.h.KeymanagerDBHelper : sessionId - - - Getting key alias
2026-07-15 13:03:49,922 INFO [JavaFX-Launcher] i.m.k.k.h.KeymanagerDBHelper : sessionId - SERVER-RESPONSE - SIGN-VERIFY - PreExpireDays found as key policy:20
2026-07-15 13:03:49,922 INFO [JavaFX-Launcher] i.m.k.k.h.KeymanagerDBHelper : sessionId - keyAlias - [KeyAlias(alias=0f1ce02e-84b1-4d04-9c3d-30a2d2f0be9c, applicationId=SERVER-RESPONSE, referenceId=SIGN-VERIFY, keyGenerationTime=2026-04-24T02:55:03, keyExpiryTime=2029-04-23T02:55:03, status=null, certThumbprint=BB127429D1F8152BA6A653FFAF71B32BD613F5151295D3AC4630686EA8E23817, uniqueIdentifier=4EF41783A16A0FA23560E32A551FC53F6CE93242)] - keyAlias
2026-07-15 13:03:49,922 INFO [JavaFX-Launcher] i.m.k.k.h.KeymanagerDBHelper : sessionId - currentKeyAlias - [KeyAlias(alias=0f1ce02e-84b1-4d04-9c3d-30a2d2f0be9c, applicationId=SERVER-RESPONSE, referenceId=SIGN-VERIFY, keyGenerationTime=2026-04-24T02:55:03, keyExpiryTime=2029-04-23T02:55:03, status=null, certThumbprint=BB127429D1F8152BA6A653FFAF71B32BD613F5151295D3AC4630686EA8E23817, uniqueIdentifier=4EF41783A16A0FA23560E32A551FC53F6CE93242)] - currentKeyAlias
2026-07-15 13:03:49,922 INFO [JavaFX-Launcher] i.m.k.k.s.i.KeymanagerServiceImpl : sessionId - currentKeyAlias - 0f1ce02e-84b1-4d04-9c3d-30a2d2f0be9c - CurrentKeyAlias size is one. Will fetch keypair using this alias
2026-07-15 13:03:49,924 INFO [JavaFX-Launcher] i.m.k.k.s.i.KeymanagerServiceImpl : sessionId - keyFromDBStore - 0f1ce02e-84b1-4d04-9c3d-30a2d2f0be9c - Key in DBStore exists for this alias. Fetching Certificate.
2026-07-15 13:03:49,932 INFO [JavaFX-Launcher] i.m.k.s.s.i.SignatureServiceImpl : SignatureSessionId - JWTSignature - - Certificate not found in JWT Header.
2026-07-15 13:03:49,995 INFO [JavaFX-Launcher] i.m.r.u.a.ResponseSignatureAdvice : Response signature is valid... https://api-internal.sandbox.apinodes.com/v1/syncdata/getCertificate?applicationId=KERNEL&version=1.2.0.2&referenceId=SIGN
2026-07-15 13:03:49,995 INFO [JavaFX-Launcher] i.m.r.u.a.RestClientAuthAdvice : completed with request Auth advice
2026-07-15 13:03:49,997 INFO [JavaFX-Launcher] i.m.k.k.s.i.KeymanagerServiceImpl : sessionId - applicationId - SERVER-RESPONSE - Request received to getCertificate
2026-07-15 13:03:49,997 INFO [JavaFX-Launcher] i.m.k.k.s.i.KeymanagerServiceImpl : sessionId - referenceId - Optional[SIGN-VERIFY] - Request received to getCertificate
2026-07-15 13:03:49,997 INFO [JavaFX-Launcher] i.m.k.k.s.i.KeymanagerServiceImpl : sessionId - - - Reference Id is present. Will get Certificate from DB store
2026-07-15 13:03:49,997 INFO [JavaFX-Launcher] i.m.k.k.s.i.KeymanagerServiceImpl : sessionId - applicationId - SERVER-RESPONSE - Getting public key from DB Store
2026-07-15 13:03:49,999 INFO [JavaFX-Launcher] i.m.k.k.s.i.KeymanagerServiceImpl : sessionId - timestamp - 2026-07-15T07:33:49.997912200 - Getting public key from DB Store
2026-07-15 13:03:49,999 INFO [JavaFX-Launcher] i.m.k.k.s.i.Keymanager