Errors commonly hit after installing the SDK via this tap, and what actually causes them.
EAS_ERR_XLITERATOR_FAILED — a transliteration module could not be loaded.
SENZ7426|Transliteration failed: Could not load transliterator module:
thaiTransRules.sz - GODT031E .../opt/senzing/er/data/thaiTransRules.sz
Sometimes reported in its generic form:
SENZ7426|EAS_ERR_XLITERATOR_FAILED: Transliteration failed:
No transliteration rules found! Transliteration requires at least one module.
Symptom shape. SzProduct (version, license) works fine, so the install
appears healthy — but every call through SzEngine or SzDiagnostic
(getEngine(), getDiagnostic(), addRecord()) fails immediately.
Cause. SUPPORTPATH points at a directory with no transliteration modules,
almost always .../opt/senzing/er/data, which does not exist. The support data
is er's sibling:
$(brew --prefix)/opt/senzing/
├── er/ <- SENZING_ROOT
│ ├── etc/ -> CONFIGPATH
│ └── resources/ -> RESOURCEPATH
└── data/ <- SUPPORTPATH (address_datamodel, *TransRules.sz, nomicon)
Two things lead people to the wrong value:
- Deriving it from
SENZING_ROOT.${SENZING_ROOT}/etcand${SENZING_ROOT}/resourcesare correct, so${SENZING_ROOT}/datalooks correct too — butSENZING_ROOTis theerdirectory, so it resolves toer/data. - Copying it out of
sz_engine_config.ini.er/etc/sz_engine_config.iniander/resources/templates/sz_engine_config.iniare templates, not this install's config, and cannot be used as is. Do not read paths out of them.
Fix. Set SENZING_ENGINE_CONFIGURATION_JSON (Senzing uses it by default
whenever it is set, so it takes precedence over any .ini), or build the
settings string your application passes to the SDK, pointing SUPPORTPATH at
the sibling data directory:
SUPPORTPATH="$(brew --prefix)/opt/senzing/data"Confirm it is the right directory before suspecting anything else:
ls "$(brew --prefix)/opt/senzing/data"/*TransRules.szIf that lists files, the path is correct.
What not to do. Do not copy or symlink *TransRules.sz files into
er/data, do not reinstall, and do not switch to Docker to work around this.
The support data ships complete; only the path is wrong. (Symlinking Senzing
libraries in particular causes further, harder-to-diagnose failures.)