HuwiDevelopers

Límites y errores

Todos los topes de los bots de Huwi (mensajes, turnos, publicaciones, componentes, webhooks) y los códigos de error de la API con lo que significan.

Los topes protegen a la gente de los mensajes no pedidos y a Huwi de los abusos. Los de esta tabla salen del código de Huwi (pnpm sync); el equipo puede ajustarlos desde su panel, así que mira la respuesta de la API si algo cambió.

Límites

QuéTopeNota
Bots por cuenta10Con Premium y 18 años o más.
Claves por bot1Una clave nueva anula la anterior.
Mensajes por segundo (todo el bot)30Pasado el tope: TOO_MANY_REQUESTS botRate.
Mensajes por chat en una ráfaga5 cada 5 sPasado el tope: TOO_MANY_REQUESTS botRate.
Respuestas por turno de la persona5Cada mensaje o toque de botón de la persona abre un turno.
Mensajes sin turno nuevo, por chat10 por díaLo que pasa de las respuestas del turno.
Mensajes en un grupo20 por minutoPor grupo; en grupos no hay turnos.
Bots en un grupo5
Publicaciones50 por díaTOO_MANY_REQUESTS botDaily.
Historias20 por díaTOO_MANY_REQUESTS botDaily.
Comentarios300 por díaTOO_MANY_REQUESTS botDaily.
Reacciones y me gusta1000 por díaTOO_MANY_REQUESTS botDaily.
Seguir cuentas200 por díaTOO_MANY_REQUESTS botDaily.
Lecturas120 por minutoTodas las consultas, menos bot.updates.
Espera de bot.updateshasta 25 sParámetro timeout, en milisegundos.
Novedades guardadas1 díaLo que no confirmas en un día se borra.
Tiempo del webhook10 sTu servidor tiene este tiempo para contestar.
Webhook caídopausa tras 1 díaEl bot queda en pausa y @gepeto avisa.
Componente: tamaño16 KBEl JSON completo. Hoy solo lo revisan las plantillas.
Componente: piezas150Contando las anidadas.
Componente: profundidad6
Componente: acciones20Botones y envíos en todo el mensaje.
Plantillas por bot50
Carga útil de /start64 caracteres

Turnos

Un turno es un mensaje o un toque de botón de la persona. Por cada turno, 5 mensajes de respuesta. Lo que mandes sin turno nuevo cuenta contra los 10 por día de ese chat. Mira Conversaciones.

Errores

Una respuesta de error trae un código HTTP, error.json.data.code y error.json.message.

HTTPdata.codemessageQué significa
401UNAUTHORIZEDUNAUTHORIZEDFalta la clave, es incorrecta o ya se cambió.
403FORBIDDENbotPermissionEl procedimiento pide un permiso apagado o está cerrado para bots.
403FORBIDDENbotPausedEl bot está en pausa (bot.me dice por qué).
403FORBIDDENnotAllowedLa persona no le escribió o lo detuvo, un bot intenta hablar con otro bot, o es una persona menor sin un bot apto.
403FORBIDDENapiKeyEs algo del dueño de la cuenta (cerrar sesión, claves, pagos). Una clave nunca lo puede hacer.
403FORBIDDENbotEse procedimiento es solo para cuentas de bot (por ejemplo bot.me llamado por una persona).
429TOO_MANY_REQUESTSbotRatePasaste un tope de mensajes: ráfaga, turnos, grupo o lecturas. Espera un poco.
429TOO_MANY_REQUESTSbotDailyPasaste el tope del día de publicar, historias, comentar, reaccionar o seguir.
400BAD_REQUESTwebhookActivePides bot.updates con un webhook puesto.
400BAD_REQUESTurlEl webhook no es https.
400BAD_REQUESTcomponents-size, components-nodes, components-depth, components-actionsUna plantilla pasó un tope de componentes. Con message.send todavía no se revisan (ver Componentes).
400BAD_REQUESTblocked, use-messageupload.fromUrl y bot.startStream hoy no están disponibles con la base real.
400BAD_REQUESTuna lista de camposLa entrada no cumple el esquema; el mensaje dice cuál campo (path) y por qué.
404NOT_FOUNDNOT_FOUNDNo existe, o no es tuyo (por ejemplo, borrar una publicación ajena).
429TOO_MANY_REQUESTSrate-limitedLa persona con la que hablas pasó su tope de mensajes por minuto (no es de tu bot).

En grupos, además: bot-limit (más de 5 bots) y bot-minors (hay menores y el bot no es apto) al agregar un bot.

Los errores en desarrollo traen más detalle

En un servidor de desarrollo de Huwi, el error incluye un stack. En producción no. No dependas de él.

Cómo reintentar

  • TOO_MANY_REQUESTS: espera unos segundos (una ráfaga se libera en 5) y reintenta con el mismo clientId.
  • botDaily: no reintentes hasta mañana.
  • FORBIDDEN y BAD_REQUEST: no se arreglan reintentando; corrige la causa.
  • Un corte de red o un 5xx: reintenta con espera creciente.

En esta página