thedotmack/claude-mem · warning
Summary watermark bump skipped — partial write
Error message
Summary watermark bump skipped — partial write
What it means
syncSummary applies the same full-write rule as observations: the summaries watermark in ChromaSyncState is bumped only when addDocuments returns written === documents.length. A partial batch write skips the bump and logs this warning, leaving the summary queued for the next backfill pass.
Source
Thrown at src/services/sync/ChromaSync.ts:523
notes: summary.notes,
prompt_number: promptNumber,
created_at_epoch: createdAtEpoch
};
const documents = this.formatSummaryDocs(stored);
logger.info('CHROMA_SYNC', 'Syncing summary', {
summaryId,
documentCount: documents.length,
project
});
// Only bump on a confirmed full write — see syncObservation() for rationale.
const written = await this.addDocuments(documents);
if (written === documents.length) {
ChromaSyncState.bump(project, 'summaries', summaryId);
} else {
logger.warn('CHROMA_SYNC', 'Summary watermark bump skipped — partial write', {
summaryId,
project,
requested: documents.length,
written
});
}
}
private formatUserPromptDoc(prompt: StoredUserPrompt): ChromaDocument {
return {
id: `prompt_${prompt.id}`,
document: prompt.prompt_text,
metadata: {
sqlite_id: prompt.id,
doc_type: 'user_prompt',
memory_session_id: prompt.memory_session_id,
project: prompt.project,
platform_source: prompt.platform_source,View on GitHub (pinned to e2d1df569a)
Solutions
- No manual action — the backfill on next boot retries the summary.
- Restore Chroma health/connectivity so subsequent writes succeed fully.
- Verify convergence afterwards rather than editing sync state.
Defensive patterns
Strategy: retry
Validate before calling
async function chromaHealthy(baseUrl: string): Promise<boolean> {
try {
const res = await fetch(`${baseUrl}/api/v2/heartbeat`, { signal: AbortSignal.timeout(2000) });
return res.ok;
} catch {
return false;
}
} Prevention
- Only advance sync state on confirmed full writes.
- Expect backfill to converge after transient Chroma outages; do not hand-edit sync state.
When it happens
Trigger: Some batches of a summary sync fail transiently inside addDocuments, returning written < requested.
Common situations: Chroma restart or overload mid-flush, embedder rate limiting, network drop.
Related errors
- Observation watermark bump skipped — partial write
- Prompt watermark bump skipped — write failed
- Backfill failed: ${error instanceof Error ? error.message :
- Chroma unavailable before write; leaving documents unsynced
- failed to kill prior chroma-mcp tree (best-effort)
AI-assisted analysis of thedotmack/claude-mem@e2d1df569a (2026-08-20).
Data as JSON: /api/errors/ff7cb59803d4e07f.
Report an issue: GitHub.