{"record":{"id":"71b6b1f53afa7fc5","repo":"deepseek-ai/deepseek-harness","slug":"session-query-invalid-config","errorCode":"SESSION_QUERY_INVALID_CONFIG","errorMessage":"session-search SQLite config: path must not be blank","messagePattern":"session-search SQLite config: path must not be blank","errorType":"exception","errorClass":"SessionQueryError","httpStatus":null,"severity":"error","filePath":"packages/session-query/session-query-sqlite/src/index.ts","lineNumber":1013,"sourceCode":"    'SESSION_QUERY_INVALID_CURSOR',\n    { cause },\n  )\n}\n\nfunction resolveConfig(config: Config): ResolvedConfig {\n  const resolved: ResolvedConfig = {\n    path: config.path,\n    openAt: config.openAt ?? 'startup',\n    journalMode: config.journalMode ?? 'wal',\n    defaultLimit: config.defaultLimit ?? SESSION_QUERY_SQLITE_DEFAULT_LIMIT,\n    maxLimit: config.maxLimit ?? SESSION_QUERY_SQLITE_MAX_LIMIT,\n    snippetChars: config.snippetChars ?? SESSION_QUERY_SQLITE_SNIPPET_CHARS,\n    readWindowMax: config.readWindowMax ?? SESSION_QUERY_READ_WINDOW_MAX,\n    persistedInspectConcurrency: config.persistedInspectConcurrency\n      ?? SESSION_QUERY_DEFAULT_PERSISTED_INSPECT_CONCURRENCY,\n  }\n  if (typeof resolved.path !== 'string' || resolved.path.trim().length === 0) {\n    throw invalidConfig('path must not be blank')\n  }\n  const openPhases: readonly string[] = ['startup', 'first-search', 'never']\n  if (!openPhases.includes(resolved.openAt)) throw invalidConfig('openAt is not supported')\n  assertPageLimit('defaultLimit', resolved.defaultLimit)\n  assertPageLimit('maxLimit', resolved.maxLimit)\n  assertPositiveInteger('snippetChars', resolved.snippetChars)\n  if (!Number.isInteger(resolved.readWindowMax) || resolved.readWindowMax < 0) {\n    throw invalidConfig('readWindowMax must be a non-negative integer')\n  }\n  if (\n    !Number.isSafeInteger(resolved.persistedInspectConcurrency)\n    || resolved.persistedInspectConcurrency < 1\n  ) {\n    throw invalidConfig('persistedInspectConcurrency must be a positive safe integer')\n  }\n  if (resolved.defaultLimit > resolved.maxLimit) {\n    throw invalidConfig('defaultLimit must be less than or equal to maxLimit')\n  }","sourceCodeStart":995,"sourceCodeEnd":1031,"githubUrl":"https://github.com/deepseek-ai/deepseek-harness/blob/b150a551b8d465e31e418e1b2eaf5e79bbb7d28e/packages/session-query/session-query-sqlite/src/index.ts#L995-L1031","documentation":"Error \"session-search SQLite config: path must not be blank\" thrown in deepseek-ai/deepseek-harness.","triggerScenarios":"Thrown at packages/session-query/session-query-sqlite/src/index.ts:1013 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Set a non-empty SQLite database path in the session-query-sqlite configuration."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"b150a551b8d465e31e418e1b2eaf5e79bbb7d28e","analyzedAt":"2026-08-24T18:12:29.105Z","schemaVersion":2},"datasetVersion":"2026-08-24T22:17:12.610Z"}