Verificación y problemas habituales - Python

3 min de lectura Actualizado: 11.09.2026

Un evento controlado

python
import asyncio
from dock_ray import DockRayClient

async def main():
    client = DockRayClient(token="...", private_key="...")
    await client.capture_message("Mensaje de control DockRay")
    await client.close()

asyncio.run(main())

La llamada es una corrutina: sin await o sin un bucle de eventos en marcha, no se envía nada. Un intérprete con los avisos de corrutinas no esperadas activados lo señala de inmediato como un RuntimeWarning.

Problemas habituales

client.enabled es False aunque las variables estén definidas

Comprueba que el token y la clave privada llegaron al constructor como cadenas no vacías. DockRayClient() sin argumentos es una configuración válida, deliberadamente inactiva, así que una errata en el nombre de una variable de entorno o un os.environ.get(...) olvidado producen exactamente el mismo efecto silencioso. El cliente nunca lee una variable del servidor por sí mismo: a diferencia de las integraciones de PHP, aquí siempre es el código que llama quien aporta las credenciales.

Un evento programado con send_later() nunca llegó

send_later() guarda una referencia a la tarea hasta que termina, pero el propio proceso tiene que seguir vivo hasta entonces. En un script corto que termina justo después de programar el envío, la tarea puede cortarse a mitad de camino. Cierra la aplicación mediante await client.close(): espera a cada envío programado antes de devolver el control.

HTTPException aparece en el panel como transacción, no como error

Eso es intencionado, no un fallo. FastAPI gestiona HTTPException antes de que llegue al middleware de DockRay, así que una petición que termina en 404 o 422 es simplemente una transacción con ese código de estado. Si quieres ver esas respuestas como errores, captúralas con tu propio manejador de excepciones colocado antes del middleware y repórtalas a mano con capture_exception().

El middleware las elimina siempre de los datos reportados, sin importar la configuración: no es algo que se pueda volver a activar. Si necesitas su contenido para diagnosticar algo, revísalo localmente, fuera del panel.

No aparece ninguna transacción

Comprueba si el middleware realmente está añadido (app.add_middleware(DockRayFastAPIMiddleware, ...)) y si la ruta que estás probando está precisamente en la lista exclude_paths. Por defecto omite /health y /metrics.

Una excepción reportada a mano no llegó

Comprueba que la llamada a capture_exception() vaya realmente precedida de await o se pase a send_later(): una corrutina que nadie ejecutó no hace nada, y Python no siempre lo avisa a gritos.

El panel responde 200 pero no aparece el evento

Una respuesta 200 {"success": false} significa que la cuenta ha agotado su cupo mensual de errores. La integración no lo trata como una avería, y hace bien. El cupo se ve en el panel de la cuenta; hasta fin de mes se calcula a partir del consumo registrado, así que borrar errores no lo reinicia.

Sigue sin funcionar

Repasa la lista de comprobación de falta de datos y, si no ayuda, escríbenos. Indica el nombre del proyecto, la versión de la integración y la hora aproximada de la prueba: acorta el camino a la respuesta.

Habla con nosotros El chat está cerrado ahora mismo Horario: lu–vi 08:00–18:00