# Solución de problemas

Problemas comunes y soluciones al alquilar servidores GPU en el mercado de CLORE.AI.

{% hint style="success" %}
Todos los ejemplos se pueden ejecutar en servidores GPU alquilados a través de [CLORE.AI Marketplace](https://clore.ai/marketplace).
{% endhint %}

{% hint style="info" %}
Esta guía se basa en la documentación técnica de la plataforma CLORE.AI.
{% endhint %}

## Tabla de contenidos

* [Problemas al crear pedidos](#order-creation-issues)
* [Problemas de conexión](#connection-issues)
* [Problemas con el contenedor](#container-issues)
* [Problemas con la GPU](#gpu-issues)
* [Problemas de pago](#payment-issues)
* [Límites de la plataforma](#platform-limits)

***

## Problemas al crear pedidos

### El pedido falla: "Saldo insuficiente"

**Causa:** Fondos insuficientes para cubrir la tarifa de creación y el depósito mínimo.

**Solución:**

* Comprueba tu saldo en la moneda seleccionada (CLORE, BTC o USDT/USDC)
* La tarifa de creación se cobra cuando se crea el pedido
* Recarga tu saldo con suficiente para varias horas de alquiler

### El pedido falla: "Servidor no disponible"

**Causa:** El servidor ya está alquilado o fuera de línea.

**Solución:**

* Actualiza la página del mercado
* Comprueba el estado del servidor (indicador en línea/fuera de línea)
* Para alquileres Spot: es posible que te hayan superado la oferta

### Pedido atascado en estado "Creando"

**Causa:** El contenedor se está desplegando o ocurrió un error.

**Solución:**

1. Espera 2-5 minutos (se está descargando la imagen de Docker)
2. Comprueba los registros en **Mis Pedidos**
3. Las imágenes grandes (10GB+) tardan más en descargarse
4. Si se atasca más de 10 minutos: cancela y vuelve a intentarlo

***

## Problemas de conexión

### No se puede conectar vía SSH

**Causa:** Puerto no configurado o contenedor no listo.

**Lista de comprobación:**

1. El puerto 22 debe estar configurado como **TCP** (no HTTP)
2. El estado del contenedor debe ser **Activo** (no Creando)
3. Usa el puerto mapeado correcto desde **Mis Pedidos**

**Comando SSH correcto:**

```bash
ssh -p <MAPPED_PORT> root@<PROXY_ADDRESS>
```

Dónde `<MAPPED_PORT>` es el puerto público (p. ej., 45678), NO el puerto 22.

### SSH funciona pero la interfaz web no se abre

**Causa:** Puerto configurado como TCP en lugar de HTTP, o servicio no en ejecución.

**Solución:**

1. Los puertos de la interfaz web deben configurarse como **HTTP** (no TCP)
2. El servicio debe escuchar en `0.0.0.0`, no en `localhost`
3. Comprueba los registros: el servicio puede haberse bloqueado al iniciarse

**Configuración de puertos correcta:**

```
22/tcp      - Acceso SSH
7860/http   - Interfaz Gradio/WebUI
8000/http   - Servidor API
```

### Error "Conexión rechazada"

**Causa:** El servicio dentro del contenedor no está en ejecución o escucha en la dirección incorrecta.

**Solución:**

1. Entra por SSH en el contenedor y comprueba el estado del servicio:

   ```bash
   ps aux | grep python
   netstat -tlnp
   ```
2. El servicio debe escuchar en `0.0.0.0`, no en `127.0.0.1`:

   ```bash
   # Incorrecto:
   python app.py --host 127.0.0.1

   # Correcto:
   python app.py --host 0.0.0.0
   ```

### Error "Conexión agotada"

**Causa:** Dirección/puerto incorrectos o problemas de red.

**Lista de comprobación:**

1. Usa la dirección Proxy desde **Mis Pedidos** (¡no la IP del servidor!)
2. Usa el puerto mapeado (puerto público, no el puerto del contenedor)
3. Usa el protocolo correcto (http\:// para puertos HTTP)

***

## Problemas con el contenedor

### El contenedor sigue reiniciándose

**Causa:** Error en el comando de inicio o recursos insuficientes.

**Solución:**

1. Comprueba los registros en **Mis Pedidos**
2. Simplifica el comando de inicio:

   ```bash
   # Malo - un comando largo puede fallar:
   apt update && apt install -y ... && pip install ... && python ...

   # Mejor - empieza con un comando simple:
   sleep infinity
   ```
3. Luego entra por SSH y configura manualmente

### No se puede reiniciar el contenedor

**Causa:** Periodo de enfriamiento entre reinicios.

**Dato:** Reiniciar el contenedor tiene un **periodo de enfriamiento de 120 segundos** de enfriamiento.

**Solución:** Espera 2 minutos entre intentos de reinicio.

### Datos perdidos después del reinicio

**Causa:** Los datos no están en almacenamiento persistente.

**Importante:**

* Los datos dentro del contenedor se **preservan** al reiniciar el contenedor
* Los datos se **pierden** cuando el pedido se cancela o caduca
* Descarga siempre los resultados antes de terminar el alquiler:

  ```bash
  scp -P <port> root@<proxy>:/workspace/results.tar.gz ./
  ```

### El comando de inicio no se ejecuta

**Causa:** Error de sintaxis o problema con la imagen.

**Errores comunes:**

```bash

# Error: espacio extra después de \
apt update && \
apt install -y git   # <-- espacio antes de la siguiente línea

# Correcto:
apt update && \
apt install -y git && \
python app.py
```

**Solución:**

1. Usa un inicio sencillo: `bash` o `sleep infinity`
2. Configura todo vía SSH
3. O crea una imagen Docker personalizada con el software preinstalado

***

## Problemas con la GPU

### GPU no visible en el contenedor

**Comprueba:**

```bash
nvidia-smi
```

**Si el comando no se encuentra:**

* La imagen Docker debe soportar CUDA
* Usa imágenes con soporte CUDA: `pytorch/pytorch:2.5.1-cuda12.4-cudnn9-runtime`

**Si la GPU no se muestra:**

* Verifica que el servidor tenga GPU (comprueba el anuncio en el mercado)
* Contacta al proveedor del servidor

### Incompatibilidad de versión de CUDA

**Error:** `La versión del controlador CUDA es insuficiente para la versión del runtime de CUDA`

**Causa:** La versión de CUDA en la imagen es incompatible con el controlador del servidor.

**Solución:**

* Comprueba la versión del controlador: `nvidia-smi` (esquina superior derecha)
* Usa una imagen con versión de CUDA compatible
* Opciones seguras: CUDA 11.8, CUDA 12.1

### Memoria GPU insuficiente

**Error:** `CUDA fuera de memoria`

**Soluciones:**

1. Usa un modelo más pequeño o cuantización
2. Añade banderas de optimización de memoria:
   * Stable Diffusion: `--medvram` o `--lowvram`
   * LLMs: `load_in_4bit=True` o `load_in_8bit=True`
3. Liberar memoria: `torch.cuda.empty_cache()`
4. Alquila un servidor con más VRAM

***

## Problemas de pago

### Monedas admitidas

CLORE.AI admite tres monedas:

* **CLORE** - token nativo de la plataforma
* **BTC** - Bitcoin
* **USD** - stablecoins (si el proveedor lo habilita)

### Pedido cancelado: "Superado"

**Causa:** Alguien ofreció un precio mayor en el mercado Spot.

**Solución:**

* Usa **Bajo demanda** para alquiler garantizado
* O aumenta tu oferta Spot

### Saldo cobrado pero pedido no creado

**Causa:** La tarifa de creación se cobra incluso si el pedido falla.

**Solución:**

* La tarifa de creación suele ser mínima
* Comprueba la razón de la cancelación en el historial
* Contacta con soporte para problemas recurrentes

***

## Límites de la plataforma

Verificado desde la base de código de CLORE.AI:

| Parámetro                              | Límite                       |
| -------------------------------------- | ---------------------------- |
| Puertos por pedido                     | **5**                        |
| Variables de entorno totales           | **12.288 caracteres** (12KB) |
| Nombre de una sola variable de entorno | 128 caracteres               |
| Valor de una sola variable de entorno  | 1.536 caracteres             |
| Clave SSH                              | **3.072 caracteres**         |
| Contraseña SSH                         | **32 caracteres**            |
| Token de Jupyter                       | **32 caracteres**            |
| Enfriamiento de reinicio de contenedor | **120 segundos**             |
| Rango de puertos                       | 1-65535                      |
| Protocolos de puerto                   | Solo TCP o HTTP              |

***

## Variables de entorno

Usa variables de entorno para acceso SSH y Jupyter:

| Variable        | Propósito                  | Longitud máxima  |
| --------------- | -------------------------- | ---------------- |
| `SSH_KEY`       | Tu clave pública SSH       | 3.072 caracteres |
| `SSH_PASSWORD`  | Contraseña SSH             | 32 caracteres    |
| `JUPYTER_TOKEN` | Token del notebook Jupyter | 32 caracteres    |

**Configuración de ejemplo:**

```
SSH_PASSWORD=mypassword123
JUPYTER_TOKEN=mysecrettoken
```

***

## Comandos de diagnóstico

```bash

# Comprobar GPU
nvidia-smi

# Comprobar uso de memoria
free -h

# Comprobar espacio en disco
df -h

# Comprobar procesos en ejecución
ps aux | grep python

# Comprobar puertos abiertos
netstat -tlnp

# Comprobar registros de errores recientes
dmesg | tail -50

# Liberar memoria GPU (Python)
import torch
torch.cuda.empty_cache()
```

***

## Obtener ayuda

Si el problema persiste:

1. Verifique [Documentación de CLORE.AI](https://docs.clore.ai/)
2. Describe el problema con registros y capturas de pantalla
3. Incluye el ID del pedido y el ID del servidor


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.clore.ai/guides/guides_v2-es/primeros-pasos/clore-troubleshooting.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
