integracion

net::ERR_CONNECTION_REFUSED

Tu navegador ha intentado conectar y no ha encontrado a nadie al otro lado. No es que la respuesta fuera mala: es que no hubo conversación. La puerta a la que llamó no existe o está cerrada.

Revisado en agosto de 2026

De paso

Ya de paso: ¿tu app está exponiendo datos?

Analízala gratis mientras lees. Tarda treinta segundos y no toca nada.

Solo leemos lo que tu app ya le entrega a cualquier visitante.

Diagnóstico

Por qué te pasa

La causa más frecuente en apps publicadas es también la más embarazosa: la app está llamando a localhost. Durante el desarrollo, tu backend corría en tu propio ordenador y esa dirección funcionaba. Al publicar, esa dirección se fue con el código, y ahora el navegador de cada visitante intenta conectar con su propio ordenador, donde por supuesto no hay nada. Se reconoce al instante porque en la consola aparece localhost o 127.0.0.1.

La segunda es que el servicio al que llamas esté apagado. En planes gratuitos que se suspenden por inactividad, o en un servidor que se ha caído, la dirección es correcta pero no hay nadie escuchando.

La tercera es un puerto en la dirección. Si la dirección lleva dos puntos y un número, estás llamando a un puerto concreto, y en producción eso casi nunca es lo que quieres.

Conviene distinguirlo de sus vecinos: si el servidor existiera pero rechazara el permiso, verías un error de CORS; si existiera pero la ruta no, verías un 404. Aquí no hay nada de eso porque no ha habido conexión.

Lo que este error no significa

  • No significa que tu app esté rota. La dirección de destino es lo que está mal, o el destino está apagado.
  • No es un problema de la conexión del usuario. Si el resto de la web carga, su internet funciona.
  • No se arregla reintentando. Si no hay nadie escuchando, no lo va a haber por insistir.

Solución

Arréglalo tú, gratis

En dos minutos sabes cuál de los tres casos es, y cada uno se arregla en un sitio distinto.

  1. 01Abre la app publicada, pulsa F12 y ve a Console. Localiza el mensaje y lee la dirección completa a la que intentaba conectar.
  2. 02Si ves localhost o 127.0.0.1, ya está: hay una dirección de desarrollo publicada. Eso se arregla en el código y va en el prompt de abajo, pero el diagnóstico ya es firme.
  3. 03Si la dirección es la correcta, cópiala y ábrela en una pestaña. Si tampoco responde ahí, el problema es del servicio, no de tu app.
  4. 04Si ese servicio es Supabase, entra en tu panel y comprueba si el proyecto está pausado. Los gratuitos se suspenden tras un tiempo sin uso y se reactivan con un botón.
  5. 05Si la dirección lleva un puerto detrás de dos puntos, quítalo salvo que sepas que hace falta: en producción casi siempre sobra.

Y esto para la parte de código

Pégaselo tal cual al agente que escribió tu app. Está redactado para que te diga lo que ha hecho, no solo para que lo haga.

Prompt para tu agente

Mi app publicada da el error "net::ERR_CONNECTION_REFUSED". La dirección a la que intenta conectar es: [PEGA AQUÍ LA DIRECCIÓN QUE APARECE EN LA CONSOLA].

Necesito que hagas esto:
1. Busca en todo el proyecto direcciones que apunten a localhost, a 127.0.0.1 o a puertos concretos, y dime en qué ficheros están.
2. Sustitúyelas por una dirección que salga de una variable de entorno, de forma que en local apunte a mi máquina y en producción al servicio real.
3. Añade una comprobación al arrancar que avise si esa variable falta, en vez de dejar que la app lance peticiones a una dirección inventada.
4. Añade manejo de error alrededor de esas llamadas: si el servicio no responde, el usuario debe ver un mensaje comprensible y no una pantalla vacía.

Dime al terminar qué variables tengo que dar de alta en el panel de mi hosting y con qué valor en producción.

Si no sale

¿Lo has intentado y sigue sin salir?

O el escáner de arriba ha encontrado algo y prefieres no tocarlo solo. En cualquiera de los dos casos esto ya es de los gordos y merece un humano: no es que no hayas sabido, es que has llegado al punto en que hace falta alguien que entre y lo vea por dentro.

Las 10 primeras apps son gratis. Estoy empezando y necesito casos reales. A cambio te pido permiso para contar después qué me encontré, sin decir de quién era la app ni enseñar tus datos. Sin tarjeta y sin suscripción: cuando se acaben las plazas empezaré a cobrar y lo diré aquí.

Cita a partir de mañana

Agendar revisión

Gratis

durante el lanzamiento

Elegimos hueco, miro tu app con calma y te digo qué pasa y cómo se arregla.

  • Sesión de trabajo en directo contigo
  • Diagnóstico del error y del riesgo real
  • Te quedas con el arreglo aplicado

Hoy, en cola prioritaria

Rescate exprés

Gratis

durante el lanzamiento

Entras en la cola de hoy. Reservas hueco y lo dejamos resuelto en el día.

  • Hueco el mismo día
  • Prioridad sobre las revisiones agendadas
  • Mismo trabajo, antes

Quién

Marc Sala

IT Manager

  • Analista de ciberseguridad certificado por Google

No es un rating anónimo de un marketplace: es la persona que va a entrar en tu app. Reviso el código, encuentro qué falla y lo arreglo contigo delante, explicándote qué ha pasado sin jerga.