![[BUG]: Desktop on Windows-ARM (Snapdragon) ships x64 Prisma query engine → "could not locate the Query Engine", all DB ops fail](https://www.chat-gpts.plus/wp-content/uploads/2026/06/5881-651d8865.jpg)
[BUG]: Desktop on Windows-ARM (Snapdragon) ships x64 Prisma query engine → “could not locate the Query Engine”, all DB ops fail
快速结论:该报错发生在 Windows ARM64(如 Snapdragon X Elite)设备上运行 AnythingLLM Desktop 时。优先排查 Prisma 引擎架构是否与系统匹配,并尝试设置环境变量 PRISMA_CLIENT_ENGINE_TYPE=binary 作为临时工作绕过。
问题场景
用户在 Windows 11 ARM64(Snapdragon X2 Elite)系统上运行 AnythingLLM Desktop 最新版,QNN/NPU 引擎能正常加载和生成,但所有数据库操作均失败。
报错原文
Prisma Client could not locate the Query Engine for runtime "windows"
FAILED TO UPDATE SYSTEM SETTINGS
FAILED TO COUNT DOCUMENTS
原因分析
架构不匹配。AnythingLLM.exe 为原生 ARM64(PE 0xAA64),但 node_modules/@prisma/engines/ 中 bundle 的查询引擎为 x64(query_engine-windows.dll.node 为 0x8664,query-engine-windows.exe 也为 x64)。ARM64 Node.js 进程无法加载 x64 DLL。
环境排查
- 确认操作系统架构:Windows 11 ARM64
- 确认 Prisma 引擎版本(Issue 中可见 Prisma engines 5.3.1)
- 确认 node_modules/@prisma/engines/ 下是否存在 windows-arm64 架构引擎
- 确认 Node.js 进程架构(可通过任务管理器或 Process Explorer 查看)
解决步骤
- 设置环境变量:在启动 AnythingLLM 前,设置
PRISMA_CLIENT_ENGINE_TYPE=binary。这会强制 Prisma 以子进程方式调用 x64 query-engine-windows.exe(在 x64 模拟模式下运行),而非加载 x64 .node 文件。 - 验证变量生效:重启 AnythingLLM,检查日志是否不再出现 “could not locate the Query Engine”。
- 可优先尝试:如果临时工作绕过无效,可能需升级 Prisma 到原生支持 win-arm64 的版本。Issue 中提到开发者已在 WoA 设备上正常启动,但不确定干净机器是否同样生效。
- 备选方案:若仍失败,可考虑在 Docker 中运行 ARM64 版本(假如有对应镜像),或等待 AnythingLLM 官方发布完整 ARM64 适配版本。
验证方法
执行任意数据库操作(如创建 workspace、查看文档列表),观察是否不再报错 “FAILED TO UPDATE SYSTEM SETTINGS” 或 “FAILED TO COUNT DOCUMENTS”。同时检查 Prisma 日志确认引擎类型已切换为 binary。
参考来源
Mintplex-Labs/anything-llm #5881,另参考关联 Issue #2771(已在 Surface 7 ARM64 上观察到相同症状)。



