{"record":{"id":"029b7cb43bc37ab9","repo":"zeroclaw-labs/zeroclaw","slug":"purge-namespace-not-supported-by-this-memory-backe","errorCode":null,"errorMessage":"purge_namespace not supported by this memory backend","messagePattern":"purge_namespace not supported by this memory backend","errorType":"exception","errorClass":"anyhow::Error","httpStatus":null,"severity":"error","filePath":"crates/zeroclaw-api/src/memory_traits.rs","lineNumber":321,"sourceCode":"    ) -> anyhow::Result<Vec<MemoryEntry>>;\n\n    /// Remove a memory by key. Deletes every row matching `key`, regardless\n    /// of agent attribution. Agent-scoped callers (the `AgentScopedMemory`\n    /// wrapper) use [`forget_for_agent`](Self::forget_for_agent) instead.\n    async fn forget(&self, key: &str) -> anyhow::Result<bool>;\n\n    /// Remove the row matching `(key, agent_id)`. Siblings of the same key\n    /// under other agents are untouched. Returns `true` if a row was\n    /// removed. Required: no safe default exists for backends or wrappers\n    /// that can hold more than one row per `key` — the unscoped `forget`\n    /// would destroy sibling rows.\n    async fn forget_for_agent(&self, key: &str, agent_id: &str) -> anyhow::Result<bool>;\n\n    /// Remove all memories whose `namespace` field equals the given value.\n    /// Returns the number of deleted entries.\n    /// Default: returns unsupported error. Backends that support bulk deletion override this.\n    async fn purge_namespace(&self, _namespace: &str) -> anyhow::Result<usize> {\n        anyhow::bail!(\"purge_namespace not supported by this memory backend\")\n    }\n\n    /// Remove all memories in a session.\n    /// Returns the number of deleted entries.\n    /// Default: returns unsupported error. Backends that support bulk deletion override this.\n    async fn purge_session(&self, _session_id: &str) -> anyhow::Result<usize> {\n        anyhow::bail!(\"purge_session not supported by this memory backend\")\n    }\n\n    /// Remove all memories in a session for one agent.\n    /// Returns the number of deleted entries.\n    /// Default: returns unsupported error. Backends with per-agent storage\n    /// override this; agent-scoped wrappers use it instead of composing a\n    /// session list with key-only deletes.\n    async fn purge_session_for_agent(\n        &self,\n        _session_id: &str,\n        _agent_id: &str,","sourceCodeStart":303,"sourceCodeEnd":339,"githubUrl":"https://github.com/zeroclaw-labs/zeroclaw/blob/88bb9c8533fc57ed7a03e36ca7c9ed2bf8336dcc/crates/zeroclaw-api/src/memory_traits.rs#L303-L339","documentation":"When the release publishes a checksum asset (name exactly \"sha256sums\", \"sha256sums.txt\", or \"*.sha256sums\" — see find_sha256sums_url, src/commands/update.rs:334), verify_download_checksum fetches it before the archive is unpacked and bails on any non-2xx status. The posture is deliberately asymmetric: if no checksum asset exists, verification is skipped with a WARN; once the release advertises one, a failed fetch aborts the update rather than silently skipping integrity verification. Nothing has been written to staging when this fires.","triggerScenarios":"`zeroclaw update` on a release whose metadata lists a SHA256SUMS-family asset whose fetch then fails: 404 from a partially-published or re-uploaded release, 403/429 CDN rate limiting, or a proxy blocking the download host for that one request.","commonSituations":"Release published with checksums uploaded late or replaced mid-rollout; corporate proxy intermittently failing large-file or extra requests; rate-limited shared egress IP.","solutions":["Open the release page and confirm the sha256sums asset is actually present and downloadable, then retry `zeroclaw update`","If rate-limited (403/429), wait for the window to reset and retry","Check proxy/AV interference for the github download host","If the asset is listed but permanently broken, report the release — do not try to bypass checksum verification"],"exampleFix":"# before\n$ zeroclaw update\nError: SHA256SUMS fetch returned 404 Not Found\n\n# after\n$ # confirm the checksum asset is on the release page and fetchable\n$ curl -fsSI \"https://github.com/zeroclaw-labs/zeroclaw/releases/download/<tag>/sha256sums\"\n$ zeroclaw update","handlingStrategy":"retry","validationCode":"// Preflight: confirm the checksum asset answers before updating.\nasync fn sums_fetchable(client: &reqwest::Client, sums_url: &str) -> bool {\n    client\n        .head(sums_url)\n        .send()\n        .await\n        .map(|r| r.status().is_success())\n        .unwrap_or(false)\n}","typeGuard":null,"tryCatchPattern":"if let Err(e) = update::run(version, force).await {\n    if e.to_string().contains(\"SHA256SUMS fetch returned\") {\n        // Transient CDN/rate-limit failure in most cases: retry once after\n        // a short backoff. If the asset is permanently missing, treat it as\n        // a broken release and report — never downgrade to skipping\n        // checksum verification for an advertised sums asset.\n    }\n}","preventionTips":["Ensure proxies/AV allow both the archive and the sha256sums asset from the release hosts","Treat repeated fetch failures on one release as a packaging bug and pin a known-good tag","Do not script around this error by deleting the checksum asset expectation — integrity verification is load-bearing"],"tags":["checksum","sha256sums","update","http-status","integrity","network"],"backgroundTag":"checksum-file-download-failed","analyzedSha":"88bb9c8533fc57ed7a03e36ca7c9ed2bf8336dcc","analyzedAt":"2026-08-23T01:07:41.857Z","schemaVersion":2},"datasetVersion":"2026-08-23T08:06:27.607Z"}