From 5161100108997958358fde55bfa185da28a3e263 Mon Sep 17 00:00:00 2001 From: Lukas Schaefer Date: Thu, 2 Jul 2026 09:42:03 -0400 Subject: [PATCH 1/2] Clamp audio duration for quota Signed-off-by: Lukas Schaefer --- lib/Service/OpenAiAPIService.php | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/lib/Service/OpenAiAPIService.php b/lib/Service/OpenAiAPIService.php index bc798a68..157c6068 100644 --- a/lib/Service/OpenAiAPIService.php +++ b/lib/Service/OpenAiAPIService.php @@ -936,6 +936,16 @@ public function transcribe( if (isset($response['segments'])) { $audioDuration = intval(round(floatval(array_pop($response['segments'])['end']))); + if ($audioDuration < 0) { + $this->logger->warning('Audio duration is less than 0: ' . $audioDuration); + $audioDuration = 0; + } + + if ($audioDuration > 2147483647) { + $this->logger->warning('Audio duration is greater than 2147483647 seconds: ' . $audioDuration); + $audioDuration = 2147483647; + } + try { $this->createQuotaUsage($userId ?? '', Application::QUOTA_TYPE_TRANSCRIPTION, $audioDuration); } catch (DBException $e) { From eae82553954f9d2368f0ee399f7514ee5aa0bff0 Mon Sep 17 00:00:00 2001 From: Lukas Schaefer Date: Mon, 6 Jul 2026 13:33:14 -0400 Subject: [PATCH 2/2] Add comment for explanation Signed-off-by: Lukas Schaefer --- lib/Service/OpenAiAPIService.php | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/Service/OpenAiAPIService.php b/lib/Service/OpenAiAPIService.php index 157c6068..5e48a1c5 100644 --- a/lib/Service/OpenAiAPIService.php +++ b/lib/Service/OpenAiAPIService.php @@ -941,6 +941,7 @@ public function transcribe( $audioDuration = 0; } + // Audio durations higher than this can cause errors in the database: https://github.com/nextcloud/integration_openai/issues/394 if ($audioDuration > 2147483647) { $this->logger->warning('Audio duration is greater than 2147483647 seconds: ' . $audioDuration); $audioDuration = 2147483647;