         _initializing = false
         _initialized = false
         if let awaiter = _initializationAwaiter {
-            awaiter()
+            awaiter(true)
         }
     }
 
     public func vungleSDKFailedToInitializeWithError(_ error: Error) {
         _logger.debug("\(kTag): \(#function): \(error.localizedDescription)")
         _initializing = false
+        if let awaiter = _initializationAwaiter {
+            awaiter(false)
+        }
     }
 
     public func vungleAdPlayabilityUpdate(_ isAdPlayable: Bool, adId: String?, error: Error?) {

                self._initializing = true
                self._sdk.delegate = self
                do {
                    self._initializationAwaiter = {
                        single(.success(true))
                    }
                    try self._sdk.start(withAppId: appId)
                } catch {
                    self._logger.debug("\(kTag): \(#function): \(error.localizedDescription)")
                    return
                }
            }

    private let _sdk = VungleSDK.shared()
    private var _initializing = false
    private var _initialized = false
    private var _initializationAwaiter: ((Bool) -> Void)?
    private var _rewarded = false
    private var _loadingAdIds: Set<String> = []
    private var _loadedAdIds: Set<String> = []
