{"record":{"id":"00fff77c06cf821e","repo":"openai/codex","slug":"pet-frame-grid-must-cover-spritesheet-exactly-exp","errorCode":null,"errorMessage":"pet frame grid must cover spritesheet exactly: expected {spritesheet_width}x{spritesheet_height}, got {total_width}x{total_height}","messagePattern":"pet frame grid must cover spritesheet exactly: expected (.+?)x(.+?), got (.+?)x(.+?)","errorType":"validation","errorClass":"anyhow::Error","httpStatus":null,"severity":"error","filePath":"codex-rs/tui/src/pets/model.rs","lineNumber":345,"sourceCode":"fn validate_frame_spec(\n    frame: &FrameSpec,\n    spritesheet_width: u32,\n    spritesheet_height: u32,\n) -> Result<usize> {\n    if frame.width == 0 || frame.height == 0 || frame.columns == 0 || frame.rows == 0 {\n        bail!(\"pet frame dimensions and grid counts must be non-zero\");\n    }\n\n    let total_width = frame\n        .width\n        .checked_mul(frame.columns)\n        .context(\"pet frame grid width overflow\")?;\n    let total_height = frame\n        .height\n        .checked_mul(frame.rows)\n        .context(\"pet frame grid height overflow\")?;\n    if total_width != spritesheet_width || total_height != spritesheet_height {\n        bail!(\n            \"pet frame grid must cover spritesheet exactly: expected {spritesheet_width}x{spritesheet_height}, got {total_width}x{total_height}\"\n        );\n    }\n\n    let frame_count = frame\n        .columns\n        .checked_mul(frame.rows)\n        .context(\"pet frame count overflow\")?;\n    let frame_count = usize::try_from(frame_count).context(\"pet frame count does not fit usize\")?;\n    if frame_count > MAX_PET_FRAMES {\n        bail!(\"pet frame count {frame_count} exceeds maximum {MAX_PET_FRAMES}\");\n    }\n    Ok(frame_count)\n}\n\nfn custom_pet_cache_id(id: &str) -> String {\n    format!(\"custom-{id}\")\n}","sourceCodeStart":327,"sourceCodeEnd":363,"githubUrl":"https://github.com/openai/codex/blob/339751715c64496cb86246bfb3935f40e309dd3d/codex-rs/tui/src/pets/model.rs#L327-L363","documentation":"Error \"pet frame grid must cover spritesheet exactly: expected {spritesheet_width}x{spritesheet_height}, got {total_width}x{total_height}\" thrown in openai/codex.","triggerScenarios":"Thrown at codex-rs/tui/src/pets/model.rs:345 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"}