{"record":{"id":"77947f5be3fbc131","repo":"mem0ai/mem0","slug":"missing-memoryexportid-or-filters","errorCode":null,"errorMessage":"Missing memoryExportId or filters","messagePattern":"Missing memoryExportId or filters","errorType":"validation","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"mem0-ts/src/client/mem0.ts","lineNumber":793,"sourceCode":"        headers: this.headers,\n        body: JSON.stringify({\n          ...camelToSnakeKeys(rest),\n          filters,\n          schema,\n        }),\n      },\n    );\n\n    return response;\n  }\n\n  async getMemoryExport(\n    data: GetMemoryExportPayload,\n  ): Promise<{ message: string; id: string }> {\n    this._captureEvent(\"get_memory_export\", []);\n\n    if (!data.memoryExportId && !data.filters) {\n      throw new Error(\"Missing memoryExportId or filters\");\n    }\n\n    const { filters, ...rest } = data;\n    const response = await this._fetchWithErrorHandling(\n      `${this.host}/v1/exports/get/`,\n      {\n        method: \"POST\",\n        headers: this.headers,\n        body: JSON.stringify({\n          ...camelToSnakeKeys(rest),\n          ...(filters && { filters }),\n        }),\n      },\n    );\n    return response;\n  }\n}\n","sourceCodeStart":775,"sourceCodeEnd":811,"githubUrl":"https://github.com/mem0ai/mem0/blob/001c235229be8795e3834520467bd0d661ed8f34/mem0-ts/src/client/mem0.ts#L775-L811","documentation":"Thrown by MemoryClient.getMemoryExport() when the payload has neither memoryExportId nor filters. The POST /v1/exports/get/ endpoint needs one of the two to locate an export: an explicit ID from createMemoryExport's response, or filters to look it up. Supplying both is fine; supplying neither is rejected locally before the request.","triggerScenarios":"Calling getMemoryExport({}) or getMemoryExport({ exportInstructions: '...' }) — any payload without memoryExportId and without filters. Common when the ID from createMemoryExport was not threaded through (e.g. destructured the wrong key from the response).","commonSituations":"Losing the id returned by createMemoryExport (response is { message, id }); retry logic that reuses the create payload instead of the created ID; assuming filters from the create call are remembered server-side.","solutions":["Poll with the created export's ID: const { id } = await client.createMemoryExport(...); then await client.getMemoryExport({ memoryExportId: id })","Or look up by the same filters used at creation: await client.getMemoryExport({ filters: { user_id: 'u1' }, schema })","Type the payload as GetMemoryExportPayload so the compiler flags an empty/invalid object"],"exampleFix":"// before\nconst created = await client.createMemoryExport(payload);\nawait client.getMemoryExport({});\n\n// after\nconst created = await client.createMemoryExport(payload);\nawait client.getMemoryExport({ memoryExportId: created.id });","handlingStrategy":"type-guard","validationCode":"const hasLookupKey = (p: GetMemoryExportPayload) =>\n  typeof p.memoryExportId === 'string' && p.memoryExportId.length > 0 ||\n  !!p.filters;\nif (!hasLookupKey(payload)) throw new Error('Pass memoryExportId from createMemoryExport, or filters');\nawait client.getMemoryExport(payload);","typeGuard":"const isGetExportPayload = (\n  p: Partial<GetMemoryExportPayload>,\n): p is GetMemoryExportPayload =>\n  (typeof p.memoryExportId === 'string' && p.memoryExportId.length > 0) ||\n  (!!p.filters && typeof p.filters === 'object');","tryCatchPattern":"try {\n  const result = await client.getMemoryExport({ memoryExportId: id });\n} catch (e) {\n  if (e instanceof Error && e.message === 'Missing memoryExportId or filters') {\n    // the create-step ID was lost — re-create the export or persist created.id\n    throw new Error('Export ID missing; store createMemoryExport().id');\n  }\n  throw e;\n}","preventionTips":["Persist the id returned by createMemoryExport immediately — it is the canonical poll handle","Type poll payloads as GetMemoryExportPayload","Do not copy the create payload to the get call; they have different required fields"],"tags":["exports","hosted-api","validation","typescript"],"backgroundTag":null,"analyzedSha":"001c235229be8795e3834520467bd0d661ed8f34","analyzedAt":"2026-08-15T01:55:42.685Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}