Skip to content

fix: /product/add returns 200 success but stores no memory (No add/update items prepared) #1493

@jihyun-jeong-854

Description

@jihyun-jeong-854

Pre-submission checklist | 提交前检查

  • I have searched existing issues and this hasn't been mentioned before | 我已搜索现有问题,确认此问题尚未被提及
  • I have read the project documentation and confirmed this issue doesn't already exist | 我已阅读项目文档并确认此问题尚未存在
  • This issue is specific to MemOS and not a general software issue | 该问题是针对 MemOS 的,而不是一般软件问题

Bug Description | 问题描述

Environment

  • MemOS: self-hosted via Docker Compose

  • Services confirmed running:

    • Neo4j
    • Qdrant
    • RabbitMQ
    • memos API
  • RabbitMQ connection issue resolved

  • Search endpoint reachable

Problem Summary

POST /product/add returns:

{
  "code": 200,
  "message": "Memory added successfully",
  "data": []
}

But no memory is actually stored.

Then POST /product/search returns empty results for all memory types.


Relevant Logs

No add/update items prepared; skipping addMemory/knowledgeBaseUpdate logs

Repeated for every /product/add request.

Also search shows no stored Memory nodes.


Expected Behavior

The sentence "I like strawberry." should create at least one memory item (likely preference memory), and /product/search should return it.

Actual Behavior

API returns success, but no memory item is created or indexed.

Additional Notes

  • Happens with:

    • I like strawberry.
    • My favorite fruit is strawberry.
    • The user's favorite fruit is strawberry.
  • Also tested after RabbitMQ / Neo4j / Qdrant were fully healthy.

  • Same behavior with deprecated mem_cube_id and new writable_cube_ids / readable_cube_ids.

Question

Is this a known bug in current add_handler / extraction pipeline, or is additional configuration required for text/preference memory creation?

How to Reproduce | 如何重现

Add Request

import requests, json

payload = {
    "user_id": "8736b16e-1d20-4163-980b-a5063c3facdc",
    "writable_cube_ids": [
        "b32d0977-435d-4828-a86f-4f47f8b55bca"
    ],
    "messages": [
        {
            "role": "user",
            "content": "I like strawberry."
        }
    ],
    "async_mode": "sync"
}

res = requests.post(
    "http://localhost:8000/product/add",
    headers={"Content-Type": "application/json"},
    data=json.dumps(payload)
)

print(res.json())

Add Response

{
  "code": 200,
  "message": "Memory added successfully",
  "data": []
}

Search Request

payload = {
    "user_id": "8736b16e-1d20-4163-980b-a5063c3facdc",
    "readable_cube_ids": [
        "b32d0977-435d-4828-a86f-4f47f8b55bca"
    ],
    "query": "strawberry"
}

res = requests.post(
    "http://localhost:8000/product/search",
    headers={"Content-Type": "application/json"},
    data=json.dumps(payload)
)

print(res.json())

Search Response

{
  "code": 200,
  "message": "Search completed successfully",
  "data": {
    "text_mem": [],
    "act_mem": [],
    "para_mem": [],
    "pref_mem": [
      {
        "cube_id": "b32d0977-435d-4828-a86f-4f47f8b55bca",
        "memories": [],
        "total_nodes": 0
      }
    ],
    "tool_mem": [],
    "skill_mem": []
  }
}

Environment | 环境信息

  • MemOS: self-hosted via Docker Compose
  • Services confirmed running:
    • Neo4j
    • Qdrant
    • RabbitMQ
    • memos API
  • RabbitMQ connection issue resolved
  • Search endpoint reachable
  • Ubuntu 24.04 LTS

Additional Context | 其他信息

No response

Willingness to Implement | 实现意愿

  • I'm willing to implement this myself | 我愿意自己解决
  • I would like someone else to implement this | 我希望其他人来解决

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingpendingPending items to be addressed | 待解决事项。

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions