AOSSIE-Org / AOSSIE-Org/Resonate

Prevent runtime crashes from unsafe .first access on realtime events and query results

Ouverte
#782 2 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
Langage dominant
Dart
Étoiles
344
Forks
350
Métriques de merge des PR
Aucune PR mergée en 30 j

Description

### 🐛 Describe the bug

Description
A clear and concise description of what the bug is.
Several controllers in the Resonate module access .first on lists returned from:
Appwrite realtime streams (data.events)
Appwrite database queries (documents)
without verifying that the list is non-empty.
If these lists are empty, calling .first throws a runtime exception and crashes the application.

This can occur during:

Realtime event handling
Query result processing
Unlike/delete operations
Participant lookup logic
Sample code to reproduce the problem
Unsafe patterns found in the codebase:

```dart
if (data.events.first.endsWith('.update')) {
// handle update
}
return value.documents.first;
```

If events or documents is empty, these lines throw:

```dart
Unhandled exception:
StateError: No element
```

The error message you got, with the full traceback.

Typical runtime error:

```dart
Unhandled exception:
StateError: No element
```

This occurs when .first is accessed on an empty list returned by:

realtime.subscribe().stream.listen

databases.listDocuments()

Guide de contribution

Ouvrir le guide de contribution

Évaluation

Cette issue n'a pas encore été évaluée.

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.