tinyhumansai/openhuman · error

ingest_document: failed to serialize payload: {e}

Error message

ingest_document: failed to serialize payload: {e}

What it means

serde_json::to_value failed while serializing the DocumentInput payload for the ingest RPC. Practically unreachable for these plain string/timestamp fields; logged as payload_serialize_failed before re-raising.

Source

Thrown at src/openhuman/memory/query/ingest_document.rs:119

            anyhow::anyhow!("ingest_document: load config failed: {e}")
        })?;

        let doc = DocumentInput {
            provider,
            title: title.trim().to_string(),
            body: body.trim().to_string(),
            modified_at: Utc::now(),
            source_ref,
        };

        let req = rpc::IngestRequest {
            source_kind: SourceKind::Document,
            source_id: source_id.clone(),
            owner,
            tags: vec!["agent_ingested".to_string()],
            payload: serde_json::to_value(&doc).map_err(|e| {
                log::debug!("[tool][memory_tree] ingest_document payload_serialize_failed err={e}");
                anyhow::anyhow!("ingest_document: failed to serialize payload: {e}")
            })?,
        };

        let outcome = rpc::ingest_rpc(&cfg, req).await.map_err(|e| {
            log::debug!(
                "[tool][memory_tree] ingest_document rpc_failed source_id={source_id} err={e}"
            );
            anyhow::anyhow!("ingest_document: ingestion failed: {e}")
        })?;

        let n = outcome.value.chunks_written;
        log::info!(
            "[tool][memory_tree] ingest_document done source_id={} chunks={}",
            source_id,
            n
        );
        Ok(ToolResult::success(format!(
            "Ingested document \"{}\" as source_id={}. {} chunks created and indexed.",

View on GitHub (pinned to 7491200858)

Solutions

  1. Check the chained serde error for the unserializable field
  2. Treat as a bug if reproducible — DocumentInput is plain data
  3. Retry the ingest once to rule out transient memory corruption
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at src/openhuman/memory/query/ingest_document.rs:119 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/01a982216413eeba. Report an issue: GitHub.