bytedance/deer-flow · error · ValueError
agent_name is required to migrate legacy facts
Error message
agent_name is required to migrate legacy facts
What it means
Error "agent_name is required to migrate legacy facts" thrown in bytedance/deer-flow.
Source
Thrown at backend/packages/harness/deerflow/agents/memory/backends/deermem/deermem/core/storage.py:1042
for notification_agent, notifications in migration_notifications:
self._dispatch_retrieval_notifications(notifications, user_id=user_id, agent_name=notification_agent)
document = self._read_document(path, agent_name, user_id=user_id)
signature = self._scope_signature(path, agent_name)
with self._cache_lock:
self._memory_cache[key] = (copy.deepcopy(document), signature)
if _rebuild_retrieval and agent_name is not None and self._retrieval is not None:
self.rebuild_index([{"userId": user_id, "agentName": agent_name}])
return copy.deepcopy(document)
def migrate(
self,
*,
user_id: str | None = None,
agent_name: str | None = None,
) -> dict[str, Any]:
"""Run the idempotent version-driven migration for one exact scope."""
if agent_name is None:
raise ValueError("agent_name is required to migrate legacy facts")
path = self._get_memory_file_path(agent_name, user_id=user_id)
key = self._cache_key(agent_name, user_id=user_id)
with self._scope_lock(key), _process_file_lock(path.parent / ".memory.lock", float(getattr(self._config, "file_lock_timeout_seconds", 10))):
self._recover_if_needed(path)
migrated, from_version, notifications = self._migrate_locked(path, agent_name, user_id=user_id, include_global=True)
self._dispatch_retrieval_notifications(notifications, user_id=user_id, agent_name=agent_name)
document = self.reload(agent_name, user_id=user_id, _rebuild_retrieval=False)
return {
"migrated": migrated,
"fromVersion": from_version,
"toVersion": document.get("version"),
"revision": document.get("revision", 0),
}
def save(
self,
memory_data: dict[str, Any],
agent_name: str | None = None,View on GitHub (pinned to 1dd6ba1acb)
Solutions
- Provide agent_name to the migrate call so facts can be scoped.
- Migrate per-agent by iterating known agent names.
When it happens
Trigger: Thrown at backend/packages/harness/deerflow/agents/memory/backends/deermem/deermem/core/storage.py:1042 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of bytedance/deer-flow@1dd6ba1acb (2026-08-14).
Data as JSON: /api/errors/f2c416e3eedfefa8.
Report an issue: GitHub.