[Majeur] GET /channels/{id} renvoie toujours 500 (LINQ non traduisible) #97
Labels
No labels
bug
enhancement
feature
groupe/chat-data
groupe/friends-blocking
groupe/input-validation
groupe/realtime-presence
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
Transcendence/backend#97
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Gravité : Majeur
Rapports QA d'origine : CHAT-04, FRIENDS-03, EVENTS-17, SECURITY_UX-04
GetChannelQuery.cs:12-15: la requête n'est pas traduisible par EF Core, l'endpoint échoue pour tous les channels.Détails des rapports
[CHAT-04] `GET /api/channels/{id}` renvoie toujours 500 — Gravité : Majeur
GET /api/channels/{id}(id existant ou non).System.InvalidOperationException: The LINQ expression 'DbSet<Channel>()...ChannelResponse.FromEntity(c).Id == @id' could not be translated. Même un id inconnu donne 500 au lieu de 404. Le front n'utilise pas cet endpoint (il liste tout), mais l'API documentée est cassée etCreatedAtRoute("channels.get")(Location header) pointe dessus.backend/API/Channels/Get/GetChannelQuery.cs:.Select(c => ChannelResponse.FromEntity(c))(méthode non traduisible EF) suivi de.SingleOrDefaultAsync(c => c.Id == id).exception.details(stack trace complète) -> fuite d'informations (probablement mode Development).[FRIENDS-03] `GET /api/channels/{id}` renvoie 500 pour tous les canaux (LINQ non traduisible) — Gravité : Mineur (hors scope strict, vu en passant)
GET /api/channels/{id}(testé sur un DM et sur un canal texte existant)System.InvalidOperationException: The LINQ expression 'DbSet<Channel>() .Where(...ChannelResponse.FromEntity(c).Id == @id)' could not be translated.backend/API/Channels/Get/GetChannelQuery.cs:.Select(c => ChannelResponse.FromEntity(c))suivi de.SingleOrDefaultAsync(c => c.Id == id).[EVENTS-17] (hors scope events, constaté en passant) `GET /api/channels/{id}` renvoie 500 pour n'importe quel channel — Gravité : Majeur
GET /channels/<id d'un channel normal>-> 500InvalidOperationException: The LINQ expression 'DbSet<Channel>() ... ChannelResponse.FromEntity(c)' could not be translated. Cause probable :backend/API/Channels/Get/GetChannelQuery.cs:12-15(.Select(c => ChannelResponse.FromEntity(c))côté SQL). À transmettre au testeur chat.[SECURITY_UX-04] `GET /api/channels/{id}` renvoie toujours 500 — Gravité : Majeur
GET /api/channels/{id}(canal texte, privé ou DM, peu importe)GET /api/channels/<id existant>InvalidOperationException: The LINQ expression ... ChannelResponse.FromEntity(c).Id == @id could not be translated(détail + stack trace dans la réponse)backend/API/Channels/Get/GetChannelQuery.cs:.Select(c => ChannelResponse.FromEntity(c))exécuté côté SQL avant.SingleOrDefaultAsync(c => c.Id == id); en plus aucun contrôle d'accès (whitelist) dans cette query.Trouvé par une campagne de tests QA automatisés (agents Claude, Playwright) sur l'environnement de dev. Les captures citées sont locales et non jointes.