# Troubleshooting Common issues and solutions for Airship plugin setup, initialization, and integration. # Troubleshooting Initialization > Troubleshoot common initialization issues and apply solutions. When following steps in [Getting Started](https://www.airship.com/docs/developer/sdk-integration/flutter/installation/getting-started/) or [Advanced Configuration](https://www.airship.com/docs/developer/sdk-integration/flutter/installation/advanced-configuration/), if you don't see a channel ID in the logs or encounter errors during initialization, review the following common problems and solutions. ## Installation Errors If you encounter errors during installation: - Verify that you're using a compatible version of Flutter. See [Requirements](https://www.airship.com/docs/developer/sdk-integration/flutter/installation/getting-started/#requirements) in *Getting Started*. - Ensure all native dependencies are properly linked. - Run `flutter clean` and `flutter pub get` to refresh dependencies. - For iOS, run `pod install` in the `ios` directory. - Check that your iOS and Android projects are correctly configured. ## Initialization Errors If you encounter errors during SDK initialization: - Verify your credentials in the Airship dashboard. The credentials used by `takeOff` are your Airship project's [App Key](https://www.airship.com/docs/reference/glossary/#app_key) and [App Secret](https://www.airship.com/docs/reference/glossary/#app_secret). To find them, select the dropdown menu (▼) next to your project name, and then **Project details**. - Ensure `WidgetsFlutterBinding.ensureInitialized()` runs first in `main()`, then `Airship.takeOff`, then `runApp()`. - Ensure `site` in your `AirshipConfig` is `Site.us` for US cloud projects or `Site.eu` for EU cloud projects. # Troubleshooting Push Notifications > Check push notification status and fix common issues. If [push notifications](https://www.airship.com/docs/developer/sdk-integration/flutter/push-notifications/) aren't working as expected, you can check the notification status to diagnose the issue. ## Push Notifications Not Working If push notifications are not being received: - Verify that push notifications are enabled for both iOS and Android. - Check that APNs (iOS) and FCM (Android) are properly configured. - Ensure the app has notification permissions. - For iOS, verify capabilities are enabled in Xcode (Push Notifications and Background Modes). - For Android, ensure `google-services.json` is in `android/app/`. ## Checking Push Notification Status If push notifications aren't working as expected, you can check the notification status to diagnose the issue: ```dart PushNotificationStatus? status = await Airship.push.notificationStatus; print('User notifications enabled: ${status?.isUserNotificationsEnabled}'); print('System notifications allowed: ${status?.areNotificationsAllowed}'); print('Push privacy feature enabled: ${status?.isPushPrivacyFeatureEnabled}'); print('Push token registered: ${status?.isPushTokenRegistered}'); print('User opted in: ${status?.isUserOptedIn}'); print('Fully opted in: ${status?.isOptedIn}'); ``` You can also listen for status changes: ```dart Airship.push.onNotificationStatusChanged.listen((event) { print('Notification status changed: ${event.status}'); print('Is opted in: ${event.status.isOptedIn}'); }); ``` ## Common Status Scenarios - `isUserOptedIn = false`: Check if `userNotificationsEnabled` is set to `true` and if the user granted permission - `isPushPrivacyFeatureEnabled = false`: Push privacy feature is disabled in Privacy Manager - `isPushTokenRegistered = false`: Device hasn't received a push token yet. Check network connectivity and platform configuration - `isUserOptedIn = true` but `isOptedIn = false`: Push token registration is pending or failed. Check console logs for errors