If you’re working with Kotlin Coroutines in Android Studio and encounter the error:
IllegalStateException: Module with the Main dispatcher is missing. Add dependency providing the Main dispatcher, e.g., kotlinx-coroutines-android
you’re not alone. This error occurs when your project is missing the Android-specific coroutine dispatcher that handles tasks on the Main (UI) thread. In this guide, you’ll learn how to fix it with complete and working code examples.

Why This Error Happens
The Main dispatcher is required when you use:
withContext(Dispatchers.Main) { ... }
Without the proper dependency (kotlinx-coroutines-android
), the app crashes at runtime because it cannot find the necessary module to handle the Main thread.
How to Fix It
Step 1: Add Required Dependency
Open your build.gradle
file (app-level) and make sure you have the following:
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3'
Replace 1.7.3
with the latest version if needed.
Sync your project after adding the dependency.
Working Example: Coroutine in ViewModel
MainActivity.kt
class MainActivity : AppCompatActivity() { private lateinit var viewModel: MainViewModel override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) viewModel = ViewModelProvider(this)[MainViewModel::class.java] viewModel.loadData() } }
MainViewModel.kt
class MainViewModel : ViewModel() { fun loadData() { viewModelScope.launch { withContext(Dispatchers.Main) { // Your UI-related code here Log.d("Coroutine", "Running on Main Thread") } } } }
Pro Tips
- Always include
kotlinx-coroutines-android
when usingDispatchers.Main
- Check Gradle sync status if the issue persists
- Avoid using
Dispatchers.Main
in plain Kotlin/JVM modules — it’s meant for Android
External Resource
For more on coroutine setup, see the official Kotlin documentation: Kotlin Coroutine Guide
Summary
The “Main Dispatcher Not Found” error in Kotlin Coroutines is common but easy to fix. By adding the right coroutine dependency for Android, your Dispatchers.Main
calls will work flawlessly. Use kotlinx-coroutines-android
and make sure your Gradle setup is correct.