saveProject throws an error when a network request fails

Cerrado Apto para principiantes
#4,276 3 comentarios 0 reacciones 1 asignado Ver en GitHub

Los mantenedores suelen responder en 4 días

@dyk1454683243-sudo ya está trabajando en esto.

Desde el 2/10/2026.

  • #2 de @dyk1454683243-sudo — cerrado sin fusionar
  • #4304 de @PS01K — cerrado sin fusionar
  • #4311 de @dyk1454683243-sudo — fusionado

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
78/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
javascript
Área
api, frontend

Línea de trabajo

Empieza en el punto de entrada saveProject() y en el manejador catch de apiClient.put() mostrado en el issue. Reproduce el fallo haciendo que la solicitud falle sin una respuesta HTTP y, a continuación, verifica que el manejo existente del fallo de guardado se ejecute sin una rejection no controlada ni un TypeError secundario.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

Bug
p5.js version

2.3.2

What is your operating system?

Linux

Web browser and version

firefox 153.0.1

Actual Behavior

When saving a project, if the request fails because of a network error, saveProject() throws a TypeError instead of handling the save failure normally.
the error is:
Cannot read properties of undefined (reading 'status')
this happens because the error handler assumes error.response always exists, but for network errors there is no response.

Expected Behavior

A network error while saving should be handled as a normal save failure without throwing another error.
The user should get the usual save failure handling instead of an unhandled/rejected promise.

Steps to reproduce
Steps:
  1. open an existing saved project and make some changes.
  2. disconnect the network or otherwise make the api request fail without returning an http response.
  3. try to save the project.
  4. saveProject() rejects with:

Cannot read properties of undefined (reading 'status')

Snippet:
apiClient
  .put(`/projects/${state.project.id}`, formParams)
  .catch((error) => {
    const { response } = error;

    if (response.status === 403) {
      // ...
    }
  });

for a network error, error.response is undefined, so accessing response.status throws.
a possible fix would be to check whether response exists before accessing response.status, and handle network errors as a normal save failure.

Lenguaje dominante
JavaScript
Estrellas
1.7k
Forks
1.7k
Merge medio
8 d 22 h
PR fusionados (30 d)
14

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de processing/p5.js-web-editor

Todos los issues de processing/p5.js-web-editor

Issues similares

Más issues de JavaScript

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.