 	private func reset(_ restart: Bool = true) {
 		_hasStarted = !restart
 		stopTimer()
+		_errorManager?.reset()
 		_player?.reset()
 		
 		for delegate in _delegates { delegate.onReset?() }

		}
		
		func onDestroy() {
			timer?.invalidate()
		}
		
		private func reset() {
			guard hasError else { return }
			
			hasError = false
			currentRetryIndex = 0
			player._disabled = false
			
			if !player.media.isLive && currentPosition > 0 {
				player.seek(currentPosition)
				currentPosition = 0
			}
			
			player.destroyScreen(&player._errorScreen) {
				self.player.updateFullscreen(nil, false)
			}
		}
		
		@objc private func retryHandler() {

			
		}
		
		func reset() {
			timer?.invalidate()
			
			hasError = false
			currentRetryIndex = 0
			currentPosition = 0
			player._disabled = false
			
			player.destroyScreen(&player._errorScreen) {
				self.player.updateFullscreen(nil, false)
			}
		}
		
		func onLoad() {
			recover()
		}
		
		func onStart() {
			recover()
		}
		
		func onResume() {
			recover()
		}
		
		func onProgress() {
