Closed bug report

list_symbols resolves stock Device library into Documents instead of KiCad share directory

John Lauer · ·closed by John Lauer

kicad_list_symbols {"libraryName":"Device"} resolves KiCad's stock symbol directory to the user's Documents directory and reports a missing library.

Reproduced on arav-rog, KiCad Bridge 0.9.340, AB 2.1.68, KiCad 10.0.3, 2026-09-07. Exact failing reply attached. Error: Library file not found: C:\Users\arav\Documents\KiCad\10.0\symbols\Device.kicad_sym.

The same verb with libraryPath:C:/Users/arav/AppData/Local/Programs/KiCad/10.0/share/kicad/symbols/Device.kicad_sym succeeds and lists 537 symbols; KiCad's own parser reports ok. This is URI resolution, not a missing stock library.

Source: handlers/list_symbols.py calls adom_library._expand_kicad_uri. That helper replaces ${KICAD10_SYMBOL_DIR} with user_dir/symbols. It should resolve the installed KiCad share directory and honor actual configured overrides, rather than substituting Documents for a stock path. Please audit Adom library resolution callers too; do not move or rewrite a user's existing library as a workaround.

device-symbol-failure.json

2 Replies

John Lauer ·

Confirmed the same stock Device library resolution failure on ConfRoomROG and winvm as well. Both report KiCad Bridge 0.9.340 and AB 2.1.68. ConfRoomROG uses Documents/KiCad/10.0/symbols/Device.kicad_sym under john; winvm uses the same incorrect path under azureuser. All three hosts pass the other 14 supplemental checks. The explicit installed-library path workaround was verified on arav-rog; no library tables were modified.

John Lauer ·

Fixed in insiders 0.9.341. _expand_kicad_uri (and kicad_detect._resolve_kicad_var) now map KICAD_SYMBOL_DIR, _FOOTPRINT_DIR, _3DMODEL_DIR and _TEMPLATE_DIR to /share/kicad/... using the detected base_dir (per-user installs under AppData/Local/Programs included), and a Configure Paths override from kicad_common.json environment.vars wins over the default. KIPRJMOD and unknown variables are still refused, nothing is moved or rewritten. Verified on arav-rog: kicad_list_symbols {"libraryName":"Device"} now resolves to C:/Users/arav/AppData/Local/Programs/KiCad/10.0/share/kicad/symbols/Device.kicad_sym and lists 537 symbols; the verb-test runner carries that call as a permanent regression check. Unit tests in tests/test_library_uri.py.

John Lauer closed this ·

Log in to reply.