kun service manager: SyntaxError: Unexpected token '\u0000', "\u0000\u0000\u0000\u0000\u0000\u0000..." is not valid JSON
at JSON.parse (<anonymous>)
at readPersistedManagerState (file:///E:/software/Kun/resources/app.asar.unpacked/kun/dist/manager/service-manager-state.js:547:49)
at async Promise.all (index 0)
at async startServiceManager (.../service-manager-state.js:380:35)
at async main (.../manager/manager-entry.js:27:20)
kun service manager: ZodError: [
{
"code": "invalid_union",
"errors": [
[ { "code": "invalid_value", "values": [1], "path": ["version"], "message": "Invalid input: expected 1" },
{ "expected": "array", "code": "invalid_type", "path": ["slots"], "message": "Invalid input: expected array, received undefined" },
{ "expected": "array", "code": "invalid_type", "path": ["leases"], "message": "Invalid input: expected array, received undefined" },
{ "expected": "array", "code": "invalid_type", "path": ["resourceLeases"], "message": "Invalid input: expected array, received undefined" } ],
[ { "code": "invalid_value", "values": [2], "path": ["version"], "message": "Invalid input: expected 2" },
{ "expected": "array", "code": "invalid_type", "path": ["slots"], ... },
{ "expected": "array", "code": "invalid_type", "path": ["leases"], ... },
{ "expected": "array", "code": "invalid_type", "path": ["resourceLeases"], ... },
{ "expected": "record", "code": "invalid_type", "path": ["resourceFenceHighWater"], "message": "Invalid input: expected record, received undefined" } ]
],
"path": [],
"message": "Invalid input"
}
]
at ServiceManagerState.restore (file:///E:/software/Kun/resources/app.asar.unpacked/kun/dist/manager/service-manager-state.js:95:60)
at readPersistedManagerState (.../service-manager-state.js:547:36)
...
kun serve: ManagerRuntimeSlotBusyError: Kun runtime slot production is already owned by 8b0ed34d-8016-48f6-865d-c069440bb535
at registerRuntimeWithManager (file:///E:/software/Kun/resources/app.asar.unpacked/kun/dist/manager/manager-client.js:377:19)
...
KUN_READY {"service":"kun","mode":"serve","host":"127.0.0.1","port":62408,...,"pid":32072,...}
[kun] hybrid sqlite listPage failed; using JSONL fallback: source.indexCount is not a function
Run `npm rebuild better-sqlite3` if the module is missing or stale.
Summary / 问题概述
环境信息
E:\software\Kun4d51719d64357424d733ec53ef45672d61d5c91b00f9fdcc19e16e80ea125369;manager 协议protocolVersion: 3;officecli1.0.141C:\Users\<user>\.kun\问题现象
启动 Kun 后出现以下错误(按出现顺序,共三层错误链):
Steps to reproduce / 复现步骤
错误日志原文
第一层:
control\manager.log对应的状态文件
C:\Users\<user>\.kun\control\manager-state.json内容全部为0x00空字节(1692 字节),非合法 JSON。第二层:
control\manager.log(状态文件改为{}后)第三层:
data\logs\runtime.log(runtime 自身监听成功并输出
KUN_READY,但向 manager 注册 production 槽位时因槽位已被占用而抛错,GUI 端 shared runtime 一直无法 ready。)附带问题:
control\manager.log中反复出现Expected behavior / 期望行为
readPersistedManagerState对损坏 JSON 做 try/catch:自动备份损坏文件(如manager-state.json.corrupt-<ts>)并按默认状态重建,而不是直接 crash。better-sqlite3缺失/不兼容场景,启动时主动检测并提示npm rebuild better-sqlite3,而不是静默降级后持续刷日志。Actual behavior / 实际行为
临时解决办法(用户侧 workaround)
C:\Users\<user>\.kun\control\manager-state.json不是合法 JSON,备份后写入合法的空结构:{"version":2,"slots":[],"leases":[],"resourceLeases":[],"resourceFenceHighWater":{}}taskkill /F /IM Kun.exe)。Kun version / Kun 版本
0.3.7
Operating system / 操作系统
windows11
Logs / 日志
Checklist / 检查清单