AOSSIE-Org / AOSSIE-Org/Resonate-Backend

[Bug]: Missing await keywords in Livekit Webhook Room Cleanup

Offen
#142 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
Vorherrschende Sprache
JavaScript
Sterne
43
Forks
120
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

### Description
A critical logic error was identified in the livekit-webhook function. The handler responsible for cleaning up Appwrite room documents after a Livekit session ends is failing to properly synchronize asynchronous calls.

In JavaScript, an async function always returns a Promise. When the code checks if (appwrite.doesRoomExist(...)), it is evaluating a Promise object rather than the boolean result of that promise. Since objects in JavaScript are "truthy," the condition will always pass, potentially attempting to delete rooms that don't exist or failing to wait for the deletion to complete before the function execution context closes

### Location
functions/livekit-webhook/src/main.js

currently
````
if (event.event === 'room_finished') {
const appwriteRoomDocId = event.room.name;

// Bug: doesRoomExist returns a Promise, which is always truthy
log(appwrite.doesRoomExist(appwriteRoomDocId));
if (appwrite.doesRoomExist(appwriteRoomDocId)) {
// Bug: deleteRoom is an async operation but is not awaited
appwrite.deleteRoom(appwriteRoomDocId);
}
}
`````

Impact

- Race Conditions: The function may return a success response to Livekit before the database cleanup actually finishes.
- Unreliable Logging: The log() statement currently logs a Promise { } instead of the actual room status.

### Proposed Fix
Apply the await keyword to ensure the asynchronous database checks and deletions resolve before proceeding

__I would Like to work on this issue__

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Bewertung

Dieses Issue wurde noch nicht bewertet.

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.