Skip to content

Conversation

@Mjboothaus
Copy link

Problem

The remove-incompatible-packages workflow intermittently fails with JSONDecodeError: Expecting value: line 1 column 1 (char 0) when trying to load failed-compatibility JSON files.

This happens when the JSON files are empty or corrupted during the workflow run, causing the entire scheduled job to fail.

Solution

Add defensive error handling to load_failed_compatibility():

  • Check for empty file content before attempting JSON parsing
  • Wrap json.loads() in try-except to catch JSONDecodeError
  • Log warnings/errors for debugging
  • Return empty dict as a safe fallback

Testing

The fix ensures the workflow continues running even when encountering problematic JSON files, allowing the script to complete and potentially fix the issue in subsequent runs.

Impact

Low risk - only adds error handling without changing the happy path logic. The workflow will be more resilient to edge cases.

Co-Authored-By: Warp agent@warp.dev

Mjboothaus and others added 4 commits January 8, 2026 10:33
Package: mojo-toml v0.3.0

A native TOML 1.0 parser for Mojo with zero Python dependencies.

Features:
- Complete TOML 1.0 syntax support
- 96 comprehensive tests ensuring reliability
- Nested tables, dotted keys, duplicate detection
- Clear error messages with line/column context
- Performance: 26μs for simple parses, 2ms for real files

Repository:
- GitHub: https://github.com/DataBooth/mojo-toml
- Release: https://github.com/DataBooth/mojo-toml/releases/tag/v0.3.0
- License: MIT

Testing:
Package includes test_package.mojo which validates:
- Simple key-value parsing
- Integer and array parsing
- Nested table structures
- Dotted key functionality

All 96 tests pass in the source repository.

Sponsored by DataBooth (https://www.databooth.com.au/posts/mojo)
Add defensive error handling to load_failed_compatibility() to gracefully
handle empty or corrupted JSON files instead of crashing with JSONDecodeError.

This prevents the remove-incompatible-packages workflow from failing when
encountering edge cases with the failed-compatibility JSON files.

Changes:
- Check for empty file content before parsing JSON
- Wrap json.loads() in try-except to catch JSONDecodeError
- Log warnings/errors when encountering problematic files
- Return empty dict as fallback in all error cases

Co-Authored-By: Warp <agent@warp.dev>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant