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
- Check the chained serde error for the unserializable field
- Treat as a bug if reproducible — DocumentInput is plain data
- 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.