Host controls in the live video stage fail silently
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 84/100
- Tipo de issue
- Error
- Claridad
- Bien especificado
- Estado de actividad
- Activo
- Stack tecnológico
- react, typescript
- Área
- frontend
Línea de trabajo
Empieza en apps/frontend/src/components/live/LiveStage.tsx comparando el manejo de errores del botón de acción del anfitrión con los controles del micrófono del reproductor que usan streamError y muestran problem. Comprueba la otra ruta de error que solo aparece en la consola, mencionada alrededor de la línea 472. Se considera terminado cuando las acciones fallidas del anfitrión muestran un mensaje comprensible junto al control, un reintento exitoso lo borra y el comportamiento del reproductor permanece sin cambios.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
In apps/frontend/src/components/live/LiveStage.tsx, the host's action buttons — letting a player speak, taking the floor back — swallow their errors into the console:
onClick={async () => {
setBusy(true);
try {
await onClick();
} catch (err) {
console.error("[live] host action failed", err); // nothing reaches the host
} finally {
setBusy(false);
}
}}
The button goes busy, comes back, and nothing changes. No message, no retry, no indication the request failed at all.
Why it matters
This happens live, in front of a room. A host taps "let in" on a raised hand, the button flickers, and the player stays silent. The host has no idea whether they misclicked, whether the player's connection is bad, or whether the request failed — so they tap it again, and again.
Meanwhile the player is waiting to speak and can see their hand is still up.
There is already a correct pattern in the same file
The player-side mic controls handle this properly:
const run = async (action: () => Promise<unknown>, failure: string) => {
setBusy(true);
setProblem(null);
try {
await action();
} catch (err) {
setProblem(streamError(err, failure)); // shown to the user
} finally {
setBusy(false);
}
};
streamError already turns a failed request into a readable message, and the component already renders problem. The host buttons just never got the same treatment.
What a fix looks like
Give the host actions the same error state the player controls have, and show the message near the control that failed rather than at the top of the stage — the host is looking at a list of participants, so an error floating elsewhere is easy to miss.
Worth checking the whole file for other places that only console.error. The two paths I know about are the host action button and one around line 472.
Definition of done
- A failed host action shows a readable message, not just a console line
- The message appears near the control the host used
- The error clears on a successful retry
- The player-side behaviour is unchanged
Good first issue: the working pattern is a few hundred lines below in the same file, so this is mostly applying something that already exists.
- Lenguaje dominante
- TypeScript
- Estrellas
- 21
- Forks
- 7
- Merge medio
- 4 h 31 min
- PR fusionados (30 d)
- 22
Preparar el entorno
- Incluye un Dockerfile o un archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de TheCodeHeist-Coder/Rexial
-
One PDF upload freezes the whole AI service, including its health checkPosiblemente ocupada @Anshuu2004 la tomó hace 1 día. AbiertoBackend first issue bug help wanted
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
TheCodeHeist-Coder/Rexial#193 · 2 comentarios ·
Los mantenedores suelen responder en 1 día
-
The join endpoint returns an error shape the frontend cannot readPosiblemente ocupada @Anshuu2004 la tomó hace 1 día. AbiertoBackend first issue bug good first issue help wanted
Dificultad 2/5 1-3 horas Aptitud para principiantes 86/100
TheCodeHeist-Coder/Rexial#192 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Registering without a password returns a 500 instead of telling you what is missingPosiblemente ocupada @Anshuu2004 la tomó hace 2 días. AbiertoBackend first issue bug good first issue help wanted
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
TheCodeHeist-Coder/Rexial#191 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
CI does not run the frontend testsPosiblemente ocupada @nayan45633 la tomó hace 1 día. AbiertoBackend first issue good first issue help wanted
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
TheCodeHeist-Coder/Rexial#188 · 2 comentarios ·
Los mantenedores suelen responder en 1 día
-
documentation good first issue help wanted
Dificultad 1/5 Menos de una hora Aptitud para principiantes 94/100
TheCodeHeist-Coder/Rexial#187 ·
Los mantenedores suelen responder en 1 día
Todos los issues de TheCodeHeist-Coder/Rexial
Issues similares
-
Manager flashes an empty "errorOccurred" dialog while redirecting a logged-out user to loginAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
openremote/openremote#3487 · 1 comentario ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
coollabsio/jean#867 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
ehmpathy/rhachet-roles-bhuild#616 ·
Los mantenedores suelen responder en 1 día
-
📘 Docs supabase/cli
Dificultad 2/5 1-3 horas Aptitud para principiantes 83/100
Los mantenedores suelen responder en 1 día
-
bug(cli): theme file home-directory check uses startsWith (sibling dirs pass, Windows casing fails)Abiertoarea/core kind/bug priority/p2 status/bot-triaged
Dificultad 2/5 1-3 horas Aptitud para principiantes 79/100
google-gemini/gemini-cli#29955 · 2 comentarios ·
Los mantenedores suelen responder en 1 día