mem0ai/mem0 · error
The timestamp parameter is not supported by the OSS Memory S
Error message
The timestamp parameter is not supported by the OSS Memory SDK.
What it means
Memory.add() rejects the timestamp option because temporal memory features are platform-only; when config.timestamp !== undefined the SDK fetches a notice id and throws a feature-gate message (which contains this base text) explaining the parameter is not supported by the OSS SDK. This prevents silently ignoring temporal data you intended to store.
Source
Thrown at mem0-ts/src/oss/src/memory/index.ts:726
}
}
async updateProject(options: UpdateProjectOptions = {}): Promise<never> {
if (options?.decay === true) {
await this._getNoticeTelemetryId();
throw new Error(await getDecayFeatureErrorMessage(this));
}
throw new Error("Project updates are not supported by the OSS Memory SDK.");
}
async add(
messages: string | Message[],
config: AddMemoryOptions,
): Promise<SearchResult> {
if (config?.timestamp !== undefined) {
await this._getNoticeTelemetryId();
throw new Error(
await getTemporalFeatureErrorMessage(this, {
triggerFunction: "add",
triggerParameter: "timestamp",
}),
);
}
// Validate messages input
if (messages === undefined || messages === null) {
throw new Error(
"messages is required and cannot be undefined or null. Provide a string or array of messages.",
);
}
if (Array.isArray(messages)) {
if (messages.length === 0) {
throw new Error(
"messages array cannot be empty. Provide at least one message with non-empty content.",
);View on GitHub (pinned to 001c235229)
Solutions
- Remove the timestamp option from add() calls; rely on the SDK's internal recording of when memories were created.
- If you need custom temporal data self-hosted, store it in the memory's own content/metadata you control rather than the timestamp param.
- Use the hosted MemoryClient (which accepts timestamp) if temporal memory is a requirement.
- Check other temporal parameters in the same feature family before shipping — they are gated identically.
Example fix
// before
await memory.add('moved to Berlin', { filters: { userId: 'u1' }, timestamp: 1672531200 }); // throws
// after
await memory.add('moved to Berlin in Jan 2023', { filters: { userId: 'u1' } }); // time expressed in content Defensive patterns
Strategy: validation
Validate before calling
function stripUnsupportedOssOptions<T extends Record<string, any>>(options: T): T {
const { timestamp, ...rest } = options;
return rest as T; // OSS add() rejects timestamp
} Type guard
function hasOssUnsupportedTemporalParams(options: Record<string, unknown>): boolean {
return options?.timestamp !== undefined;
} Try / catch
try {
await memory.add(text, opts);
} catch (err) {
if (err instanceof Error && /timestamp parameter is not supported by the OSS/.test(err.message)) {
const { timestamp, ...rest } = opts as any;
await memory.add(text, rest);
return;
}
throw err;
} Prevention
- Don't port hosted-client option objects to OSS calls wholesale — strip platform params.
- Encode temporal facts in memory content text when self-hosting.
- Write one adapter layer that translates hosted options to OSS options for shared code.
When it happens
Trigger: Calling memory.add(text, { timestamp: 1710000000 }) or { timestamp: new Date().toISOString() } on an OSS Memory instance — anything where the timestamp key is present and not undefined.
Common situations: Backfilling memories with historical event times, porting hosted-client code that supports timestamp, or adding createdAt-style metadata via the timestamp option in self-hosted deployments.
Related errors
- The decay parameter is not supported by the OSS Memory SDK.
- Project updates are not supported by the OSS Memory SDK.
- Together LLM failed: ${message}
- vLLM LLM failed: ${message}
- The timestamp parameter is not supported by the OSS Memory S
AI-assisted analysis of mem0ai/mem0@001c235229 (2026-08-15).
Data as JSON: /api/errors/3006aeb2344b6d04.
Report an issue: GitHub.