zeroclaw-labs/zeroclaw · error

AgentScopedMemory refuses to forget unattributed row: legacy

Error message

AgentScopedMemory refuses to forget unattributed row: legacy or backend without per-agent tracking; resolve via an admin Memory handle

What it means

Error "AgentScopedMemory refuses to forget unattributed row: legacy or backend without per-agent tracking; resolve via an admin Memory handle" thrown in zeroclaw-labs/zeroclaw.

Source

Thrown at crates/zeroclaw-memory/src/agent_scoped.rs:317

                            })),
                        "forget refused: row attributed to a different agent"
                    );
                    anyhow::bail!(
                        "AgentScopedMemory refuses to forget cross-agent row: key attributed to agent other than the bound agent"
                    );
                }
                None => {
                    ::zeroclaw_log::record!(
                        WARN,
                        ::zeroclaw_log::Event::new(module_path!(), ::zeroclaw_log::Action::Reject)
                            .with_outcome(::zeroclaw_log::EventOutcome::Failure)
                            .with_attrs(::serde_json::json!({
                                "key": key,
                                "bound_agent": self.agent_id,
                            })),
                        "forget refused: row has no agent attribution"
                    );
                    anyhow::bail!(
                        "AgentScopedMemory refuses to forget unattributed row: legacy or backend without per-agent tracking; resolve via an admin Memory handle"
                    );
                }
            },
        }
    }

    async fn forget_for_agent(&self, key: &str, agent_id: &str) -> Result<bool> {
        // Only the bound agent can delete its own row through the
        // wrapper. Allowlist grants recall, never delete.
        if agent_id != self.agent_id {
            ::zeroclaw_log::record!(
                WARN,
                ::zeroclaw_log::Event::new(module_path!(), ::zeroclaw_log::Action::Reject)
                    .with_outcome(::zeroclaw_log::EventOutcome::Failure)
                    .with_attrs(::serde_json::json!({
                        "key": key,
                        "row_agent": agent_id,

View on GitHub (pinned to 88bb9c8533)

Solutions

  1. Resolve the unattributed row via an admin Memory handle rather than an agent-scoped one.

When it happens

Trigger: Thrown at crates/zeroclaw-memory/src/agent_scoped.rs:317 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of zeroclaw-labs/zeroclaw@88bb9c8533 (2026-08-23). Data as JSON: /api/errors/9c8d2f766026a02e. Report an issue: GitHub.