tinyhumansai/openhuman · error · anyhow::Error

memory driver does not support the profile family

Error message

memory driver does not support the profile family

What it means

The FacetCache was built over a memory driver that does not implement the profile facet family (MemoryProfile capability). Asking for the profile returns this caller-facing error: the bound driver (e.g. the null provider or a module release without profile support) lacks the capability, so no profile can be read.

Source

Thrown at src/openhuman/agent/learning/cache.rs:73

    /// Test-only: production must go through the guard so the policy layer is
    /// on the path.
    ///
    /// Not `#[cfg(test)]` — integration tests link the lib without it, and a
    /// gated constructor is invisible to them. `#[doc(hidden)]` keeps it off
    /// the public docs instead.
    #[doc(hidden)]
    #[must_use]
    pub fn for_tests(profile: Arc<dyn MemoryProfile>) -> Self {
        Self {
            source: Source::Direct(profile),
        }
    }

    /// The profile family, or a caller-facing error.
    fn profile(&self) -> anyhow::Result<&dyn MemoryProfile> {
        match &self.source {
            Source::Guard(guard) => guard.as_profile().ok_or_else(|| {
                anyhow::anyhow!("memory driver does not support the profile family")
            }),
            Source::Direct(profile) => Ok(profile.as_ref()),
        }
    }

    /// List all facets with `state = 'active'`, ordered by stability descending.
    pub async fn list_active(&self) -> anyhow::Result<Vec<ProfileFacet>> {
        Ok(self.profile()?.list_active_facets().await?)
    }

    /// List all facets (all states), ordered by stability descending.
    pub async fn list_all(&self) -> anyhow::Result<Vec<ProfileFacet>> {
        Ok(self.profile()?.list_all_facets().await?)
    }

    /// List active facets belonging to a specific class.
    ///
    /// Class is determined by the `key` prefix before the first `/`.

View on GitHub (pinned to 7491200858)

Solutions

  1. Ensure a memory driver with profile-facet support is bound (check memory module/binding configuration)
  2. Update the memory module to a release that serves the profile family
  3. Degrade gracefully: skip profile-dependent behaviour when the driver reports this capability gap
Defensive patterns

Strategy: type-guard

When it happens

Trigger: Thrown at src/openhuman/agent/learning/cache.rs:73 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of tinyhumansai/openhuman@7491200858 (2026-08-17). Data as JSON: /api/errors/990012ca38879e1b. Report an issue: GitHub.