Хм. «File ended while scanning use of ....» — это, по сути, результат ошибки разбора (parsing error). Где-то в (финальном) USFM или в способе его чтения есть ошибка: программа ожидает конечный маркер, но не получает его.
Это не очень помогает, поэтому я копнул глубже: \@nxxt используется как часть макроса, который захватывает параметр для идентификатора, такого как \h или \id, где *любой* другой маркер завершает параметр. (После \h и \id не может следовать общий USFM, только текст без маркеров).
Моя догадка состоит в том, что ваш финальный SFM заканчивается на \h или \id, ИЛИ внутри \h или \id есть маркер, который ожидает параметр.
Например: \h something \c <КОНЕЦ ФАЙЛА>
-----------
Пояснение с избыточной детализацией:
При обработке \h программа читает каждую букву слова «something », добавляя их по очереди к сохраняемому параметру, пока не прочитает что-то, что не является простой буквой. Эта небуквенная единица присваивается \@nxxt (макрос, определенный \c, определенно не является простой буквой). Затем программа сделает все необходимое с параметром «something », а затем выполнит запомненный макрос \@nxxt.
\c (а значит, и \@nxxt) ожидает прочитать номер главы, отделенный пробелом (считаются новые строки). Если файл заканчивается до того, как будут найдены этот номер главы и завершающий пробел, вы получите эту ошибку.
------------
Аналогично, если первое, что следует после \h / \id, — это не стиль абзаца, а \k, и нет \k* для обозначения конца ключевого слова, вы получите ту же ошибку. Есть несколько еще более странных ситуаций, но надеюсь, этого достаточно как указание.
Вам нужно внимательно прочитать финальный SFM (см. вкладку просмотра/редактирования) для глоссария, сравнить его с исходным глоссарием и выяснить, где именно кроется проблема.