 		let success = crypto_secretbox_open_easy(unencrypted, voiceData, UInt64(data.count - 12), &nonce, &self.secret!)
 
 		// Decryption failure
-		guard success != -1 else { return }
+		guard success != -1 else { throw DiscordVoiceEngineError.decryptionError }
 
 		self.client?.handleVoiceData(DiscordVoiceData(rtpHeader: rtpHeader,
 			voiceData: Array(UnsafeBufferPointer<UInt8>(start: unencrypted, count: audioSize))))

import Sodium

enum DiscordVoiceEngineError : Error {
	case ipExtraction
}


		encoder = nil
	}

	private func createVoicePacket(_ data: [UInt8]) throws -> [UInt8] {
		defer { free(encrypted) }

		let audioSize = Int(crypto_secretbox_MACBYTES) + defaultAudioSize
