Feedback Beta: el formulario confirma envío pero no persiste el comentario #192
Reference in New Issue
Block a user
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?
Incidencia
Rafa envió desde el formulario Beta un feedback con el texto exacto "Comentario de prueba". El UI mostró éxito, pero no se creó ningún
fea_feedbacken producción.Evidencia server-side (2026-08-04)
#55439,2026-08-03 02:53:59 UTC. No existe el comentario de prueba./web/wp-content/mu-plugins/fea-beta-feedback.php.200).POST /wp-json/fea/v1/feedbackresponde. Una sonda no destructiva con honeypot recibió200 {"ok":true}y el contador permaneció246(comportamiento esperado: el honeypot evita escribir).Causa probable / defecto confirmado en frontend
En
fea-beta-feedback.php, líneas 276–287, el navegador llama afetch()pero:awaitni compruebaresponse.ok/ JSON..catch(function(){}).Por tanto, el UI puede afirmar que el feedback se envió cuando no ha quedado persistido. La causa del fallo de transporte del cliente concreto aún no está confirmada; no hay access logs disponibles en el hosting para correlacionar la petición.
Propuesta (preparar y probar localmente; no desplegar sin validación)
async, esperar la respuesta y exigirresponse.ok+{ok:true}antes de mostrar el agradecimiento.fea_feedback; respuesta fallida no muestra éxito.Criterios de aceptación
Fix preparado y validado en local — pendiente desplegar a prod
Causa confirmada: en
fea-beta-feedback.php(líneas 276-287), el handler de envío llamaba afetch()sinawait, sin comprobarresponse.ok, y con.catch(function(){})vacío. El UI mostraba "Gracias" de forma síncrona sin esperar la respuesta del servidor, así que un fallo de red o HTTP quedaba invisible para quien enviaba el feedback.Fix: rama
fix/feedback-beta-192(commitc5704d7), pusheada a este repo. El handler ahora encadena la promesa, exigeresponse.ok+{ok:true}antes de mostrar éxito, y si falla mantiene la tarjeta abierta con un mensaje de error visible (traducido a los 5 idiomas) y reactiva el botón para reintentar. Se añadióconsole.warnno sensible (solo código de error, nunca el comentario).Validación local (WP Docker, puerto 8081, Playwright ad-hoc):
fea_feedbackcreado.php -lsin errores de sintaxis.Resultado: funciona como se esperaba en local. Cumple los criterios de aceptación del issue.
Pendiente: no se ha tocado producción. Falta revisión y despliegue manual (el mu-plugin en prod se sube vía
ssh cat > ruta, vermaster-feadulta.md) cuando Rafa lo confirme.Cerrado — fix desplegado y verificado en prod
Desplegado en
www.feadulta.com(contenedorwordpress-r2ssjifwj0r0ghyoqd528uaa, Hetzner/Coolify), commitc5704d7de la ramafix/feedback-beta-192. Verificado tras desplegar:php -lsin errores, home 200 con el markup nuevo (fea-fb-error), POST real al endpoint →{"ok":true}(CPT de prueba creado y borrado).Nota sobre la incidencia original: revisando la BD de prod, el envío de prueba ("Comentario de prueba") sí se guardó — con un typo ("Comentario de prusba", ID 55447, 2026-08-04 12:13:34), por eso la búsqueda del texto exacto no lo encontró. No hubo una caída real del endpoint; los logs de las últimas 26h no muestran ningún fallo de transporte. El fix sigue siendo correcto y útil igualmente (evita que un fallo real de red/HTTP se muestre como éxito), pero no era la causa de lo que parecía una incidencia.
Hallazgo aparte, no relacionado con este issue: el cron diario de WhatsApp (
feadulta-feedback-daily) llevaba desde el cutover consultando el servidor CDMON viejo (congelado) en vez de Hetzner — corregido en~/.hermes/scripts/fea_feedback_last24h.py, fuera del repo de este proyecto.Rama
fix/feedback-beta-192sigue sin mergear amain(pendiente, arrastra también commits defeat/tts-backlog-autorsin relación).