{"record":{"id":"9af05ec4ec57b093","repo":"deepseek-ai/deepseek-harness","slug":"session-query-invalid-cursor-9af05e","errorCode":"SESSION_QUERY_INVALID_CURSOR","errorMessage":"session-search cursor is invalid","messagePattern":"session-search cursor is invalid","errorType":"exception","errorClass":"SessionQueryError","httpStatus":null,"severity":"error","filePath":"packages/session-query/session-query-sqlite/src/index.ts","lineNumber":970,"sourceCode":"  }\n}\n\nfunction encodeCursor(payload: CursorPayload): SessionSearchCursorValue {\n  return SessionSearchCursor(Buffer.from(JSON.stringify(payload), 'utf8').toString('base64url'))\n}\n\nfunction decodeCursor(\n  cursor: SessionSearchCursorValue,\n  instance: string,\n  scope: CursorPayload['scope'],\n  fingerprint: string,\n  generation: string,\n): number {\n  let decoded: Partial<CursorPayload>\n  try {\n    decoded = JSON.parse(Buffer.from(cursor, 'base64url').toString('utf8')) as Partial<CursorPayload>\n  } catch (error: unknown) {\n    throw invalidCursor(error)\n  }\n  if (\n    decoded.version !== 1\n    || decoded.instance !== instance\n    || decoded.scope !== scope\n    || decoded.fingerprint !== fingerprint\n    || !Number.isSafeInteger(decoded.offset)\n    || decoded.offset === undefined\n    || decoded.offset < 0\n  ) {\n    throw invalidCursor(new Error('cursor does not belong to this normalized request'))\n  }\n  if (decoded.generation !== generation) {\n    throw new SessionQueryError(\n      'session-search cursor is stale because its relevant corpus changed',\n      'SESSION_QUERY_STALE_CURSOR',\n    )\n  }","sourceCodeStart":952,"sourceCodeEnd":988,"githubUrl":"https://github.com/deepseek-ai/deepseek-harness/blob/b150a551b8d465e31e418e1b2eaf5e79bbb7d28e/packages/session-query/session-query-sqlite/src/index.ts#L952-L988","documentation":"Error \"session-search cursor is invalid\" thrown in deepseek-ai/deepseek-harness.","triggerScenarios":"Thrown at packages/session-query/session-query-sqlite/src/index.ts:970 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Request the first page again without a cursor or with a cursor from a fresh search."],"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"}