Install / pip
SSL or certificate errors during pip install (corporate proxy / QDC)
SSL or certificate errors during pip install (corporate proxy / QDC)
Windows SmartScreen blocks the CLI installer
Windows SmartScreen blocks the CLI installer
.exe is not yet code-signed. Click More info → Run anyway in the SmartScreen dialog.CLI
`geniex` not found after install
`geniex` not found after install
PATH. Run:`--compute cpu` or `--compute gpu` errors with a Qualcomm AI Hub Model
`--compute cpu` or `--compute gpu` errors with a Qualcomm AI Hub Model
--compute npu (or omit the flag — npu is the default for qairt). To run on CPU/GPU, switch to a GGUF model on the llama.cpp runtime.`Context length exceeded` during a long chat
`Context length exceeded` during a long chat
--nctx, default 4096).- llama.cpp (GGUF): raise it at runtime, e.g.
geniex infer <model> --nctx 8192, up to the model’s trained maximum. A larger window uses more memory. - Qualcomm AI Engine Direct (NPU): the window is fixed in the compiled bundle and
--nctxhas no effect. Add--sliding-windowto keep chatting (evicts the oldest context), or pull a bundle built for a longer context.
Server
`geniex serve` returns 'model not found'
`geniex serve` returns 'model not found'
geniex serve.Docker container can't see the NPU
Docker container can't see the NPU
--privileged flag is required for NPU access. Make sure your docker run includes it, plus the volume mounts for /usr/lib. See CLI install (Docker).Linux
Container loads model but inference fails with `Failed to create device: 14001`
Container loads model but inference fails with `Failed to create device: 14001`
docker run includes --privileged and the /usr/lib mount, and that the host’s Qualcomm driver packages (qcom-adreno1, qcom-fastrpc1) are installed — see Linux install → Install host dependencies.`--compute npu` fails with `SDKError(Invalid input parameters or handle)` / `Device 'HTP0' not found`
`--compute npu` fails with `SDKError(Invalid input parameters or handle)` / `Device 'HTP0' not found`
dlopens the unversioned libcdsprpc.so, but qcom-fastrpc1 only ships libcdsprpc.so.1. On bare metal install.sh creates the symlink; if you deployed the release tarball directly (no install.sh), create it yourself:`--compute hybrid` runs but at CPU speed (silent NPU fallback)
`--compute hybrid` runs but at CPU speed (silent NPU fallback)
hybrid still produces correct output — it just runs entirely on CPU, so the failure is silent. Confirm the NPU is actually engaged by running with GGML_HEX_VERBOSE=1; you should see Hexagon Arch version vNN and a libggml-htp-vNN.so session. No such lines means it fell back to CPU.`geniex` exits with 'device is missing CPU features geniex requires'
`geniex` exits with 'device is missing CPU features geniex requires'
fp16, dotprod, lse (atomics), and rdm extensions. Baseline armv8.0 boards — some Dragonwing IoT SoCs with no NPU — don’t implement these, so geniex stops at startup with a clear error rather than crashing with a raw SIGILL: illegal instruction partway through a run.This check is global: every backend needs those instructions, so switching --compute to cpu, gpu, or npu won’t help on such a device. Check what your CPU reports:armv8.0-a with no ISA extensions, ships CPU inference only (no QAIRT/NPU, no OpenCL/GPU, no Hexagon), and is correspondingly slower — ggml falls back to its fp32 quant kernels without dotprod/fp16. Every channel asks for it explicitly; nothing is auto-detected:geniex-qairt has no CPU-only build at all: QAIRT needs an NPU, and these boards have none. Use geniex-llama-cpp (or the geniex meta package, which drops the QAIRT backend automatically on such a board).If the CPU-only build still fails, report it in GitHub Issues or Slack with the output above.Gemma 4 E2B is OOM-killed on RB3 Gen 2 (QCS6490)
Gemma 4 E2B is OOM-killed on RB3 Gen 2 (QCS6490)
Q4_0 weights plus a 1.9 GB F32 mmproj projector — against the ~4.7 GB this board has available, so the kernel kills the process while the projector loads:llm to run its text path only — that skips the projector and fits. Image and audio input are unavailable in this mode.geniex model set-type.Android
Model loads but generation self-repeats or outputs nothing
Model loads but generation self-repeats or outputs nothing
generateStreamFlow instead of the chat-templated prompt. Qualcomm AI Engine Direct pipelines treat their input as already-templated — pass applyChatTemplate().formattedText, not the raw user message.Qualcomm AI Hub pull fails with `INVALID_INPUT`
Qualcomm AI Hub pull fails with `INVALID_INPUT`
chipset for Qualcomm AI Hub pulls — auto-detect only runs on Windows on Snapdragon. Set ModelPullInput.chipset to "SM8750" (Snapdragon 8 Elite) or "SM8850" (Snapdragon 8 Elite Gen 5). See Android API reference → ModelPullInput.Qualcomm AI Engine Direct load fails with 'unknown model name'
Qualcomm AI Engine Direct load fails with 'unknown model name'
qwen3_4b_instruct_2507, qwen2_5_vl_7b_instruct, etc.). To add a new Qualcomm AI Hub Model, register it on the C++ side first — see third-party/geniex-qairt/models/{llm,vlm}_model_registry.h.`nGpuLayers` or `nCtx` rejected on Qualcomm AI Engine Direct
`nGpuLayers` or `nCtx` rejected on Qualcomm AI Engine Direct
nGpuLayers and nCtx at their defaults; tune max_tokens and enable_thinking instead.Init fails with 'this device's CPU lacks features required by geniex'
Init fails with 'this device's CPU lacks features required by geniex'
fp16, dotprod, and i8mm extensions, but minSdk 27 still admits phones that predate them, so geniex_init returns NOT_SUPPORTED instead of crashing with a raw SIGILL partway through a run.Ship the CPU-only AAR on those devices — geniex-android-aar-cpu-<tag>.aar from the release assets. It is compiled for plain armv8.0-a with no ISA extensions, ships CPU inference only (no Qualcomm AI Engine Direct, no OpenCL, no Hexagon), and is correspondingly slower. Otherwise it is a drop-in replacement: same com.geniex.sdk namespace and API. Only the default AAR is published to Maven Central.