"Could not connect to the endpoint URL" (DynamoDB): no se pudo conectar al endpoint URL
TL;DR: botocore no pudo abrir una conexión con el DynamoDB endpoint y lo resolvió. Casi siempre un --endpoint-url, DynamoDB local incorrecto que no se ejecuta, una región incorrecta o con errores tipográficos que produce un nombre de host inexistente o ninguna ruta de red (fuera de línea, VPC, grupo de seguridad). Apunta a un endpoint accesible y confirma que hay algo escuchando.
Qué significa
botocore.exceptions.EndpointConnectionError: Could not connect to the
endpoint URL: "http://localhost:8000/"
# what the engine actually returns, reproduced against Amazon DynamoDB (live service, us-east-1):
connect ECONNREFUSED 127.0.0.1:9boto3/botocore construye la URL del endpoint de DynamoDB a partir de la región (o de tu endpoint_url explícito) y luego no logra establecer una conexión TCP/HTTP con él. A diferencia de un error de autenticación o de validación, la solicitud nunca llegó a un servicio en marcha. Aparece tanto contra DynamoDB Local (emulador caído / puerto equivocado) como contra AWS real (nombre de host de región incorrecto o red bloqueada).
Por qué ocurre
- DynamoDB Local no está en marcha — pasaste
--endpoint-url http://localhost:8000pero el emulador no está levantado en ese puerto (mira conexión rechazada). - URL de endpoint incorrecta — un typo, un puerto equivocado, o
httpsdonde el emulador local sirvehttp. - Región incorrecta — una región mal escrita (
us-east-11) resuelve a un nombre de host que no existe, así que no se puede hacer la conexión. - Sin ruta de red — sin conexión, o tráfico de DynamoDB bloqueado por un endpoint de VPC, un grupo de seguridad o una ACL de red.
- Entre contenedores / entre hosts — desde dentro de Docker,
localhostes el propio contenedor, no el host ni el servicio de DynamoDB Local.
Cómo solucionarlo
- Confirma qué está escuchando en el endpoint:
curl http://localhost:8000 # DynamoDB Local answers with a small response - Corrige la URL del endpoint — host, puerto (
8000por defecto) y esquema (httppara Local) correctos. - Comprueba la ortografía de la región para AWS real, y asegúrate de tener una ruta de red (el endpoint de VPC / las reglas del grupo de seguridad permiten DynamoDB).
- En Docker, usa el nombre del servicio de compose o
host.docker.internalen lugar delocalhost(host.docker.internalse resuelve automáticamente en Docker Desktop; en Linux Docker Engine añade--add-host host.docker.internal:host-gateway). - ¿Hablando con AWS real? Elimina por completo la sobrescritura de
--endpoint-urly deja que botocore construya el endpoint regional correcto.
Apunta DynoTable a Local
DynoTable valida la conectividad con Test Connection en cada perfil de
Settings → Profiles (Conectar una cuenta de AWS). Para
DynamoDB Local, pon el endpoint http://localhost:8000 (o :4566 para LocalStack)
con credenciales de relleno — los mismos valores que necesita la CLI. Pulsa ⌘P
para cambiar de perfil cuando tu aplicación use un puerto distinto al de DynoTable. Guía:
Conectar a DynamoDB Local y LocalStack.
Contra AWS real, un typo en la cadena de la región produce un nombre de host que no
resuelve — la misma forma de EndpointConnectionError que un puerto de Local inalcanzable.
Confírmalo con aws sts get-caller-identity sobre el perfil antes de depurar
ajustes específicos de DynamoDB.
Errores relacionados
- Could not connect to DynamoDB Local (ECONNREFUSED) — el equivalente en Node/JS de una conexión local rechazada.
- Missing region in config — sin región, así que el SDK no puede construir ningún endpoint.
- Aprende: Ejecutar DynamoDB Local · Conectar a DynamoDB Local / LocalStack
Fuentes
- Deploying DynamoDB locally on your computer — AWS DynamoDB Developer Guide (default port 8000, dummy credentials,
--endpoint-url) - DynamoDB local usage notes — AWS DynamoDB Developer Guide (setting the local endpoint;
--endpoint-urlrequired on every CLI command) - Error handling — Boto3 Developer Guide (
EndpointConnectionErroras a client-side botocore exception) docker run --add-host— Docker CLI reference (host.docker.internal/host-gatewayfor container-to-host connections)