Raise exception on spreadsheet errors instead of silently skipping #4

Merged
cal merged 2 commits from fix/validate-spreadsheet-decision-data into main 2026-02-06 13:55:53 +00:00
Owner

Problem:The _is_spreadsheet_error() check was logging a warning and silently skipping rows with formula errors (#REF!, #N/A, etc.). This could lead to incomplete game data being submitted without the user knowing - for example, missing pitcher decisions or partial play-by-play data.Solution:Raise SheetsException immediately when spreadsheet errors are detected, providing:- Exact row number and field name- Actual error value found in the cell (#REF!, #N/A, etc.)- Common error type explanations- Clear action required to fixImpact:- Users get immediate feedback about spreadsheet errors- No partial/incomplete data submitted to API- Clear instructions on what needs to be fixed- Better data integrity and user experience- Prevents confusion from silent failuresExample Error Message:❌ Spreadsheet Error Detected**Location:** Row 7, Column 'pitcher_id'**Value Found:** `#REF!`This cell contains a formula error that must be fixed before submission.**Common Error Types:**• `#REF!` - Invalid cell reference (deleted row/column)• `#N/A` - Lookup formula couldn't find a match• `#VALUE!` - Wrong data type in formula• `#DIV/0!` - Division by zero• `#NAME?` - Unrecognized formula name**Action Required:** Fix cell pitcher_id in row 7 and resubmit.**Testing:**To test, create a scorecard with a formula error (e.g., delete a referenced column to create #REF!) and attempt submission. The command should fail with a clear, actionable error message instead of silently skipping the row.

**Problem:**The `_is_spreadsheet_error()` check was logging a warning and silently skipping rows with formula errors (#REF!, #N/A, etc.). This could lead to incomplete game data being submitted without the user knowing - for example, missing pitcher decisions or partial play-by-play data.**Solution:**Raise `SheetsException` immediately when spreadsheet errors are detected, providing:- Exact row number and field name- Actual error value found in the cell (`#REF!`, `#N/A`, etc.)- Common error type explanations- Clear action required to fix**Impact:**- ✅ Users get immediate feedback about spreadsheet errors- ✅ No partial/incomplete data submitted to API- ✅ Clear instructions on what needs to be fixed- ✅ Better data integrity and user experience- ✅ Prevents confusion from silent failures**Example Error Message:**```❌ Spreadsheet Error Detected**Location:** Row 7, Column 'pitcher_id'**Value Found:** `#REF!`This cell contains a formula error that must be fixed before submission.**Common Error Types:**• `#REF!` - Invalid cell reference (deleted row/column)• `#N/A` - Lookup formula couldn't find a match• `#VALUE!` - Wrong data type in formula• `#DIV/0!` - Division by zero• `#NAME?` - Unrecognized formula name**Action Required:** Fix cell pitcher_id in row 7 and resubmit.```**Testing:**To test, create a scorecard with a formula error (e.g., delete a referenced column to create #REF!) and attempt submission. The command should fail with a clear, actionable error message instead of silently skipping the row.
cal added 1 commit 2026-02-06 13:46:12 +00:00
Raise exception on spreadsheet errors instead of silently skipping
Some checks failed
Build Docker Image / build (pull_request) Failing after 14s
972cfacf91
**Problem:**
The _is_spreadsheet_error() check was logging a warning and silently skipping
rows with formula errors (#REF!, #N/A, etc.). This could lead to incomplete
game data being submitted without the user knowing.

**Solution:**
Raise SheetsException immediately when spreadsheet errors are detected,
providing:
- Exact row number and field name
- Actual error value found in the cell
- Common error type explanations
- Clear action required to fix

**Impact:**
- Users get immediate feedback about spreadsheet errors
- No partial/incomplete data submitted to API
- Clear instructions on what needs to be fixed
- Better data integrity

**Example Error Message:**
```
 Spreadsheet Error Detected

**Location:** Row 7, Column 'pitcher_id'
**Value Found:** `#REF!`

This cell contains a formula error that must be fixed before submission.

**Action Required:** Fix cell pitcher_id in row 7 and resubmit.
```

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
cal added 1 commit 2026-02-06 13:46:50 +00:00
Bump version to 2.29.4
Some checks failed
Build Docker Image / build (pull_request) Failing after 16s
367bca4695
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
cal added 1 commit 2026-02-06 13:47:25 +00:00
Update VERSION
All checks were successful
Build Docker Image / build (pull_request) Successful in 53s
62686cd965
cal force-pushed fix/validate-spreadsheet-decision-data from 62686cd965 to 085e76134b 2026-02-06 13:54:42 +00:00 Compare
cal merged commit 0ed0446607 into main 2026-02-06 13:55:53 +00:00
cal deleted branch fix/validate-spreadsheet-decision-data 2026-02-06 13:55:53 +00:00
Sign in to join this conversation.
No reviewers
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: cal/major-domo-v2#4
No description provided.