Main Thread Checker Violation
iOS
TL;DR
Main Thread Checker Violation indicates a concurrency failure on iOS that interrupts the current user flow.
Symptoms
- Main Thread Checker Violation appears in crash logs
- The app exits or the UI flow stops
Common Causes
- Shared state is mutated without coordination
- Object is used after lifecycle termination
How to Verify
Quick Fixes
- Add guard checks and a safe fallback path
- Disable or rollback the risky code path behind a flag
Proper Fixes
- Enforce contracts with types, runtime checks, and tests
- Refactor ownership and lifecycle boundaries to remove the failure mode
Example Stack Trace
Main Thread Checker Violation in ProfileViewController.swift:42