{"record":{"id":"d98b5448a2d3d5b8","repo":"openai/codex","slug":"compaction-item-in-payload-did-not-contain-stri","errorCode":null,"errorMessage":"compaction item in payload {} did not contain string encrypted_content","messagePattern":"compaction item in payload (.+?) did not contain string encrypted_content","errorType":"exception","errorClass":"anyhow::Error","httpStatus":null,"severity":"error","filePath":"codex-rs/rollout-trace/src/reducer/conversation/normalize.rs","lineNumber":468,"sourceCode":"\nfn tool_output_body(output: Option<&Value>, raw_payload: &RawPayloadRef) -> ConversationBody {\n    match output {\n        Some(Value::String(text)) => ConversationBody {\n            parts: vec![ConversationPart::Text { text: text.clone() }],\n        },\n        Some(Value::Array(_)) => ConversationBody {\n            parts: content_parts(output, raw_payload),\n        },\n        Some(value) => json_body(value, raw_payload),\n        None => ConversationBody {\n            parts: vec![payload_ref_part(\"tool_output\", raw_payload)],\n        },\n    }\n}\n\nfn compaction_body(item: &Value, raw_payload: &RawPayloadRef) -> Result<ConversationBody> {\n    let Some(encrypted_content) = item.get(\"encrypted_content\").and_then(Value::as_str) else {\n        bail!(\n            \"compaction item in payload {} did not contain string encrypted_content\",\n            raw_payload.raw_payload_id\n        );\n    };\n    // `type: \"compaction\"` is the remote-compaction summary that later re-enters model requests.\n    // The structural \"history was cut here\" marker is inserted separately when the checkpoint is\n    // installed; payload refs are observation-local, so the encoded summary itself is identity.\n    Ok(ConversationBody {\n        parts: vec![ConversationPart::Encoded {\n            label: \"encrypted_content\".to_string(),\n            value: encrypted_content.to_string(),\n        }],\n    })\n}\n\nfn json_body(value: &Value, raw_payload: &RawPayloadRef) -> ConversationBody {\n    ConversationBody {\n        parts: vec![ConversationPart::Json {","sourceCodeStart":450,"sourceCodeEnd":486,"githubUrl":"https://github.com/openai/codex/blob/339751715c64496cb86246bfb3935f40e309dd3d/codex-rs/rollout-trace/src/reducer/conversation/normalize.rs#L450-L486","documentation":"Error \"compaction item in payload {} did not contain string encrypted_content\" thrown in openai/codex.","triggerScenarios":"Thrown at codex-rs/rollout-trace/src/reducer/conversation/normalize.rs:468 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"339751715c64496cb86246bfb3935f40e309dd3d","analyzedAt":"2026-08-25T05:35:09.876Z","schemaVersion":2},"datasetVersion":"2026-08-25T06:17:31.827Z"}