{"record":{"id":"28653a062cfd6a9e","repo":"aaif-goose/goose","slug":"invalid-column-letter","errorCode":null,"errorMessage":"Invalid column letter","messagePattern":"Invalid column letter","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"crates/goose-mcp/src/computercontroller/xlsx_tool.rs","lineNumber":294,"sourceCode":"        } else if c.is_numeric() {\n            parsing_row = true;\n            row_str.push(c);\n        } else {\n            anyhow::bail!(\"Invalid character in cell reference\");\n        }\n    }\n\n    let col = column_letter_to_number(&col_str)?;\n    let row = row_str.parse::<u32>().context(\"Invalid row number\")?;\n\n    Ok((row, col))\n}\n\nfn column_letter_to_number(column: &str) -> Result<u32> {\n    let mut result = 0u32;\n    for c in column.chars() {\n        if !c.is_ascii_alphabetic() {\n            anyhow::bail!(\"Invalid column letter\");\n        }\n        let digit = c.to_ascii_uppercase() as u32 - 'A' as u32 + 1;\n        result = result\n            .checked_mul(26)\n            .and_then(|value| value.checked_add(digit))\n            .context(\"Column number out of range\")?;\n    }\n    Ok(result)\n}\n\n#[cfg(test)]\nmod tests {\n    use super::*;\n    use std::path::PathBuf;\n\n    fn get_test_file() -> PathBuf {\n        PathBuf::from(env!(\"CARGO_MANIFEST_DIR\"))\n            .join(\"src\")","sourceCodeStart":276,"sourceCodeEnd":312,"githubUrl":"https://github.com/aaif-goose/goose/blob/3810898a7447ec3299be72e223d3570a7aabf0ab/crates/goose-mcp/src/computercontroller/xlsx_tool.rs#L276-L312","documentation":"Error \"Invalid column letter\" thrown in aaif-goose/goose.","triggerScenarios":"Thrown at crates/goose-mcp/src/computercontroller/xlsx_tool.rs:294 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":"3810898a7447ec3299be72e223d3570a7aabf0ab","analyzedAt":"2026-08-16T10:14:26.282Z","schemaVersion":2},"datasetVersion":"2026-08-16T13:17:31.715Z"}