Memory backfill: memory_file entries not appearing in Qdrant scroll results #8

Closed
opened 2026-03-04 14:36:35 -06:00 by SpeedyFoxAi · 0 comments
Owner

Bug Report

Issue

When backfilling memory files from /root/.openclaw/workspace/memory/*.md to Qdrant memories_tr collection, the backfill script reports success but entries do not appear in standard scroll queries.

Details

  • Date range: Feb 4 - Mar 1, 2026 (23 memory files)
  • Expected: Each memory file should be stored as a single point with full content
  • Actual: Points added but payload contains minimal/empty data when retrieved via scroll
  • Root cause: Missing ids field in Qdrant POST request body

Error Pattern

Status: 400
Response: {"status":{"error":"Format error in JSON body: missing field `ids` at line 1 column 160"}}

Resolution

Added ids field to the Qdrant upsert request:

resp = requests.post(
    f"{QDRANT_URL}/collections/memories_tr/points",
    json={
        "points": [{"id": point_id, "payload": payload}],
        "ids": [point_id]
    }
)

Verification

  • Backfill completed: 23/23 files
  • Validation confirmed:
    • Date coverage: Feb 4 - Mar 4 (complete)
    • Total points in Qdrant: ~20K+
    • Realtime capture: Working (source: true-recall-base)

Status

RESOLVED - Fixed in backfill script, all memory files now properly stored.

## Bug Report ### Issue When backfilling memory files from `/root/.openclaw/workspace/memory/*.md` to Qdrant `memories_tr` collection, the backfill script reports success but entries do not appear in standard scroll queries. ### Details - **Date range**: Feb 4 - Mar 1, 2026 (23 memory files) - **Expected**: Each memory file should be stored as a single point with full content - **Actual**: Points added but payload contains minimal/empty data when retrieved via scroll - **Root cause**: Missing `ids` field in Qdrant POST request body ### Error Pattern ``` Status: 400 Response: {"status":{"error":"Format error in JSON body: missing field `ids` at line 1 column 160"}} ``` ### Resolution Added `ids` field to the Qdrant upsert request: ```python resp = requests.post( f"{QDRANT_URL}/collections/memories_tr/points", json={ "points": [{"id": point_id, "payload": payload}], "ids": [point_id] } ) ``` ### Verification - Backfill completed: 23/23 files - Validation confirmed: - Date coverage: Feb 4 - Mar 4 (complete) - Total points in Qdrant: ~20K+ - Realtime capture: Working (source: true-recall-base) ### Status **RESOLVED** - Fixed in backfill script, all memory files now properly stored.
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: SpeedyFoxAi/openclaw-true-recall-base#8