openai/codex · error · anyhow::Error
guardian assessment was not valid JSON
Error message
guardian assessment was not valid JSON
What it means
Error "guardian assessment was not valid JSON" thrown in openai/codex.
Source
Thrown at codex-rs/core/src/guardian/prompt.rs:719
/// The model is asked for strict JSON, but we still accept a surrounding prose
/// wrapper so transient formatting drift fails less noisily during dogfooding.
/// Non-JSON output is still a review failure; this is only a thin recovery path
/// for cases where the model wrapped the JSON in extra prose.
pub(crate) fn parse_guardian_assessment(text: Option<&str>) -> anyhow::Result<GuardianAssessment> {
let Some(text) = text else {
anyhow::bail!("guardian review completed without an assessment payload");
};
let parsed_payload =
if let Ok(payload) = serde_json::from_str::<GuardianAssessmentPayload>(text) {
payload
} else if let (Some(start), Some(end)) = (text.find('{'), text.rfind('}'))
&& start < end
&& let Some(slice) = text.get(start..=end)
{
serde_json::from_str::<GuardianAssessmentPayload>(slice)?
} else {
anyhow::bail!("guardian assessment was not valid JSON");
};
let outcome = parsed_payload.outcome;
let risk_level = parsed_payload.risk_level.unwrap_or(match outcome {
super::GuardianAssessmentOutcome::Allow => GuardianRiskLevel::Low,
super::GuardianAssessmentOutcome::Deny => GuardianRiskLevel::High,
});
let rationale = parsed_payload
.rationale
.filter(|rationale| !rationale.trim().is_empty())
.unwrap_or_else(|| match outcome {
super::GuardianAssessmentOutcome::Allow => {
"Auto-review returned a low-risk allow decision.".to_string()
}
super::GuardianAssessmentOutcome::Deny => {
"Auto-review returned a deny decision without a rationale.".to_string()
}
});View on GitHub (pinned to 339751715c)
Solutions
- Retry the guardian review; the assessment response was not valid JSON.
When it happens
Trigger: Thrown at codex-rs/core/src/guardian/prompt.rs:719 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of openai/codex@339751715c (2026-08-25).
Data as JSON: /api/errors/a779903330b26e44.
Report an issue: GitHub.