Mensajes de error
Todos los mensajes que Signal Lab puede mostrar cuando algo falla, por su código: el código es lo que dan el informe de una ejecución, la línea de comandos y la API. Los valores entre llaves se sustituyen por lo que falló.
api
| Código | Mensaje |
|---|---|
api.not_found | El servidor no tiene esa dirección: la interfaz y el servidor son de versiones distintas |
api.run_invalid | No se puede leer la solicitud de ejecución |
api.run_source | Indica el experimento una sola vez: un documento o una plantilla |
api.template_unknown | No existe la plantilla incluida {name} |
auth
| Código | Mensaje |
|---|---|
auth.host | Este servidor no responde a esa dirección: ábrelo por su propio nombre |
auth.origin | Esta solicitud venía de otro sitio y se rechazó |
auth.required | Primero inicia sesión en este servidor |
broadcast
| Código | Mensaje |
|---|---|
broadcast.cidr_invalid | {value} no es un bloque CIDR: usa a.b.c.d/nn, p. ej. 192.168.1.0/24 |
broadcast.interface_invalid | {value} no es una dirección IPv4: introduce la dirección de la interfaz, o déjalo vacío para usar cualquiera |
broadcast.ipv6 | IPv6 no tiene difusión: usa multidifusión |
broadcast.join_failed | No se puede unir al grupo de multidifusión {group} |
broadcast.not_broadcast | {target} no es una dirección de difusión: usa 255.255.255.255:puerto o x.x.x.255:puerto |
broadcast.not_multicast | {target} no es un grupo de multidifusión: usa una dirección de 224.0.0.0 a 239.255.255.255 |
broadcast.port_shared | {target} ya está en uso: activa “compartir el puerto” para escuchar junto a él |
broadcast.prefix_invalid | /{value} no es una longitud de prefijo: usa de /0 a /32 |
broadcast.rate_invalid | La tasa de la baliza debe ser mayor que 0 |
broadcast.rate_limit | {pps} paquetes/s entre {targets} destinos supera el límite de {max} pps: baja la tasa o reduce el destino |
broadcast.reply_missing | No hay ninguna respuesta que enviar: define una o desactiva “responder a sondeos” |
broadcast.sweep_port | Define el puerto del barrido |
broadcast.sweep_too_large | /{prefix} abarca {count} direcciones y un barrido llega como máximo a {max} hosts: redúcelo a /{limit} o a un bloque menor |
broadcast.target_required | Introduce al menos un destino |
check
| Código | Mensaje |
|---|---|
check.body_missing | La respuesta no contiene {text} |
check.body_truncated | La respuesta ({bytes} B) supera los 256 KiB que se guardan, así que no se pudo comprobar el texto |
check.header_mismatch | El encabezado {name} es {actual}, que no contiene {text} |
check.header_missing | La respuesta no tiene el encabezado {name} |
check.latency_failed | La respuesta tardó {actual} ms, por encima del límite de {limit} ms |
check.no_response | No hay respuesta HTTP antes de este paso: pon una solicitud HTTP antes en todos los caminos |
check.status_failed | Se esperaba HTTP {expected}, se recibió {actual} |
check.value_failed | Se esperaba: {value} {op} {expected} |
cli
| Código | Mensaje |
|---|---|
cli.bind_one | --bind define la dirección de un solo emulador; se indicaron varios |
cli.emulate_nothing | Nada que emular: los archivos no contienen ningún emulador |
cli.emulator_unknown | {name} no es un archivo, y {path} no tiene ningún emulador con ese id o nombre |
cli.file_unknown | {name} no es un archivo ni una plantilla incluida: signallab templates las enumera |
cli.header_invalid | {value} no es un encabezado: usa 'Name: value' |
cli.library_missing | No hay ninguna biblioteca en {path}: la aplicación la crea la primera vez que se inicia; o indica otra con --library |
cli.matrix_conflict | {name} se define dos veces (con --param y la matriz, o con --matrix y el archivo); indícalo una sola vez |
cli.matrix_file_invalid | {path} no es una matriz: un objeto de NAME: [valores] o una lista de objetos de NAME: valor |
cli.matrix_invalid | {value} no es NAME=V1,V2 |
cli.matrix_too_large | {n} combinaciones: como máximo {max} por comando |
cli.matrix_too_wide | {axes} ejes dan más combinaciones de las que se pueden contar: como máximo {max} por comando |
cli.matrix_unknown | --matrix {name}: ningún experimento indicado tiene un parámetro con ese nombre |
cli.matrix_value_invalid | {name}: un valor de matriz es texto, un número o true/false |
cli.osc_arg_invalid | {value} no es un argumento OSC: usa i:3, f:0.5, d:1.5, h:64, s:text, b:hex, T, F o N |
cli.param_invalid | {value} no es NAME=VALUE |
cli.server_ended | La respuesta de {url} terminó antes que la ejecución |
cli.server_invalid | {url} no es una dirección de servidor: usa una como http://127.0.0.1:1430 |
cli.server_reply | {url} respondió con algo que no es de Signal Lab (HTTP {status}) |
cli.server_unreachable | No se puede acceder al servidor en {url} |
cli.signal_ambiguous | Varias señales se llaman {name}; indica una por su id: {ids} |
cli.signal_unknown | No hay ninguna señal {name} en {path} |
cli.status_unexpected | La respuesta fue {actual}, no {expected} |
cli.token_empty | El archivo de token {path} está vacío |
command
| Código | Mensaje |
|---|---|
command.args_invalid | El motor no pudo leer los argumentos de {name}: la interfaz y el motor son de versiones distintas |
command.json_required | El servidor solo acepta comandos en JSON |
command.reply_invalid | El motor no pudo codificar su respuesta |
command.unknown | El motor no tiene el comando {name}: la interfaz es más reciente que el motor |
compare
| Código | Mensaje |
|---|---|
compare.not_numbers | {value} y {expected} deben ser números para esta comparación |
details
| Código | Mensaje |
|---|---|
details | Detalles técnicos |
doc
| Código | Mensaje |
|---|---|
doc.connection_duplicate | El enlace {from} → {to} aparece dos veces |
doc.connection_invalid | El enlace {from} → {to} lleva a un nodo que no existe o al propio nodo |
doc.name_required | Ponle un nombre al experimento |
doc.node_count | Un experimento tiene de 1 a {max} nodos |
doc.node_id_duplicate | Dos nodos comparten el id {id} |
doc.node_id_empty | Un nodo tiene el id vacío |
doc.port_invalid | Salida desconocida {port} |
doc.position_invalid | El nodo tiene una posición no válida |
doc.start_end_count | Un experimento necesita exactamente un Inicio y un Fin |
doc.version_unsupported | La versión de archivo {version} no es compatible; esta versión de Signal Lab lee la versión {supported} |
emulator
| Código | Mensaje |
|---|---|
emulator.accept_failed | La aceptación de conexiones en {target} se detuvo con un error |
emulator.arg_value | {value} no es un valor de tipo {type} |
emulator.args_too_many | Como máximo {max} argumentos |
emulator.bind_taken | {target} lo ocupa otro emulador de este experimento ({other}) |
emulator.body_failed | No se pudo leer el cuerpo de la solicitud |
emulator.body_too_large | El cuerpo de la solicitud ocupa más de {max} KB |
emulator.busy | Hay más de {max} respuestas esperando: esta se descartó |
emulator.conditions_too_many | Como máximo {max} condiciones |
emulator.failed | El emulador se detuvo inesperadamente |
emulator.header_value_invalid | No es un valor de encabezado válido: no puede contener saltos de línea |
emulator.headers_too_many | Como máximo {max} encabezados |
emulator.mqtt_client_id | Se rechazó un cliente sin id que pidió conservar su sesión |
emulator.mqtt_login | Se rechazó a {client}: usuario o contraseña incorrectos |
emulator.mqtt_password_alone | MQTT 3.1.1 no puede llevar una contraseña sin nombre de usuario, así que ningún cliente podría conectarse: define también un nombre de usuario |
emulator.mqtt_protocol | Se rechazó un cliente que habla {protocol} de nivel {level}: este bróker habla MQTT 3.1.1 (nivel 4) |
emulator.name_unknown | Nombre desconocido {{{name}}}: una respuesta lee {{request…}} y parámetros |
emulator.node_unknown | No hay ningún emulador {id} en este experimento |
emulator.not_in_run | El emulador {id} no forma parte de esta ejecución |
emulator.not_running | El emulador #{id} no está en marcha |
emulator.params_only | Aquí solo texto y parámetros: se fija cuando el emulador se inicia, antes de que llegue nada |
emulator.path_param | {value} no es un nombre de segmento: usa :nombre con letras, dígitos y _ |
emulator.path_rest | * solo puede ser el último segmento completo, como en /files/* |
emulator.path_slash | Una ruta de acceso empieza por / |
emulator.response_required | Una ruta necesita al menos una respuesta |
emulator.responses_too_many | Como máximo {max} respuestas |
emulator.rules_too_many | Como máximo {max} reglas |
emulator.secret_unsupported | Un emulador no puede leer secretos |
emulator.weights_zero | Al menos una respuesta necesita un peso mayor que 0 |
emulators
| Código | Mensaje |
|---|---|
emulators.encode | No se pudo escribir la biblioteca de emuladores como JSON |
emulators.json_invalid | {path} no es un archivo de emuladores válido: error JSON en la línea {line}, columna {column}; corrige el archivo o elimínalo |
extract
| Código | Mensaje |
|---|---|
extract.header_missing | La respuesta no tiene el encabezado {name} |
extract.json_missing | {path} no está en la respuesta |
extract.no_match | /{pattern}/ no coincidió con el cuerpo de la respuesta |
extract.not_json | El cuerpo de la respuesta no es JSON |
extract.truncated | La respuesta ({bytes} B) supera los 256 KiB que se guardan, así que el valor no se puede leer de forma fiable |
feedback
| Código | Mensaje |
|---|---|
feedback.disabled | Ahora mismo no se aceptan comentarios: escribe a info@proanima.net |
feedback.email_invalid | Eso no es una dirección de correo |
feedback.failed | El servicio de comentarios respondió HTTP {status} |
feedback.file_too_large | {name} ocupa más de {max_mb} MB |
feedback.file_type | {name}: una captura debe ser PNG, JPEG, WebP o GIF, y un registro, texto |
feedback.invalid | El servicio de comentarios no aceptó el formulario |
feedback.message_required | Primero escribe un mensaje |
feedback.message_too_long | El mensaje supera los {max} caracteres |
feedback.rate_limited | Demasiados mensajes desde esta dirección por ahora: vuelve a intentarlo en {retry_after_s} s |
feedback.send_failed | El servicio de comentarios no pudo pasar el mensaje al servidor de correo; vuelve a intentarlo más tarde (referencia {id}) |
feedback.too_large | Todo junto ocupa más de {max_mb} MB |
feedback.too_many_files | Como máximo {max} registros |
file
| Código | Mensaje |
|---|---|
file.encode | No se pudo escribir el experimento como JSON |
file.io | No se puede leer ni escribir {path} |
file.json_invalid | No es un archivo de experimento válido: error JSON en la línea {line}, columna {column} |
file.not_found | {path} no es un archivo de la carpeta de datos del servidor |
file.too_large | Los archivos de experimento ocupan como máximo {max} MiB |
firewall
| Código | Mensaje |
|---|---|
firewall.declined | No se concedieron permisos de administrador, así que el firewall no cambió |
firewall.failed | No se pudieron leer ni cambiar las reglas del firewall |
firewall.server | El firewall de un servidor se configura en el servidor: ejecuta allí signallab firewall allow, o pídeselo a su administrador |
firewall.unsupported | Aquí no hay un firewall por programa que cambiar: abre los puertos en ufw o firewalld |
graph
| Código | Mensaje |
|---|---|
graph.cycle | Este nodo forma parte de un ciclo; solo el cuerpo de un Bucle puede volver a él |
graph.needs_http | Necesita una solicitud HTTP antes en todos los caminos |
graph.outputs_required | Conecta las salidas obligatorias |
graph.port_unexpected | La salida {port} no pertenece a este nodo |
graph.start_input | Inicio no puede tener entrada |
graph.unreachable | No se llega a él desde Inicio |
hex
| Código | Mensaje |
|---|---|
hex.empty | No hay bytes que enviar: introduce pares de dígitos hex como de ad be ef |
hex.invalid | {value} no son bytes hex: usa pares de dígitos como de ad be ef |
http
| Código | Mensaje |
|---|---|
http.client_failed | No se pudo iniciar el cliente HTTP |
http.digest_invalid | El servidor pidió Digest sin realm ni nonce |
http.digest_not_offered | El servidor respondió 401 sin pedir Digest |
http.digest_other_origin | La solicitud se redirigió a {origin}, que pidió Digest: solo se responde al origen que indica la solicitud |
http.digest_unsupported | El servidor pidió Digest con {algorithm}, que Signal Lab no admite (admite MD5 y SHA-256) |
http.duration_invalid | La duración debe ser de 0 segundos o más |
http.rate_invalid | La tasa debe ser 0 o estar entre {min} y {max} solicitudes/s |
impair
| Código | Mensaje |
|---|---|
impair.bind_taken | {target} ya es de {other}: dos sockets de la ejecución no pueden compartir un puerto |
impair.loop | Los paquetes del relé volverían a él a través de {target} y darían vueltas para siempre: apunta su destino al dispositivo |
impair.not_running | La Degradación {id} no forma parte de esta ejecución |
impair.relay_unknown | No hay ninguna Degradación {id} en este experimento |
inspect
| Código | Mensaje |
|---|---|
inspect.empty | La captura está vacía: no hay nada que guardar |
inspect.frame_gone | La trama #{seq} ya no está en la captura: la reemplazaron tramas más recientes |
inspect.no_payload | La trama #{seq} solo registró su tamaño, no sus bytes |
json_path
| Código | Mensaje |
|---|---|
json_path.invalid | {path} no es una ruta JSON: usa $.field, $.items[0] o $["a b"] |
load
| Código | Mensaje |
|---|---|
load.nothing_planned | Este perfil no envía ninguna solicitud |
load.spike_outside | El pico debe terminar dentro de la duración |
load.steps_out_of_range | La tasa de cada escalón debe estar entre 0 y {max} solicitudes/s |
load.threshold | {metric} fue {actual}; umbral: {op} {value} |
load.threshold_value | Un umbral necesita un número, 0 o mayor |
load.thresholds_too_many | Como máximo {max} umbrales |
load.too_long | Los escalones duran más de lo que puede durar una ejecución ({seconds} s) |
loop
| Código | Mensaje |
|---|---|
loop.body_entered | Solo la salida “Cuerpo” de un Bucle puede entrar en su cuerpo |
loop.body_leaves | Dentro del cuerpo de un Bucle, cada salida sigue en el cuerpo o vuelve al Bucle |
loop.body_parallel | Dentro del cuerpo de un Bucle, una salida tiene un solo enlace: cada iteración se ejecuta como una rama |
loop.body_unsupported | Inicio, Fin, ramas paralelas, uniones y otros bucles no pueden estar dentro del cuerpo de un Bucle |
loop.limit | Iteraciones: {max}; la condición de salida nunca se cumplió (conecta “Límite” para continuar) |
loop.no_return | Nada en “Cuerpo” vuelve a este Bucle |
mqtt
| Código | Mensaje |
|---|---|
mqtt.client_id_required | Introduce un ID de cliente: los brókeres rechazan uno vacío |
mqtt.filter_required | Agrega al menos un filtro de temas |
mqtt.no_answer | {broker} aceptó la conexión pero no respondió a tiempo: ¿es un bróker MQTT? |
mqtt.not_connected | La conexión #{id} no está abierta: primero conéctate al bróker |
mqtt.protocol | {broker} respondió con algo distinto de MQTT 3.1.1 |
mqtt.refused | {broker} rechazó la conexión (código de retorno {code}) |
mqtt.refused_client_id | {broker} rechazó el ID de cliente: elige otro |
mqtt.refused_credentials | {broker} rechazó el usuario o la contraseña |
mqtt.refused_not_authorized | {broker} no autorizó a este cliente: revisa sus reglas de acceso |
mqtt.refused_protocol | {broker} no acepta clientes MQTT 3.1.1 |
mqtt.refused_unavailable | {broker} no está disponible ahora: vuelve a intentarlo más tarde |
mqtt.subscribe_refused | {broker} rechazó la suscripción a {filter} |
mqtt.topic_invalid | No se puede publicar en este tema |
mqtt.topic_required | Introduce un tema en el que publicar |
name
| Código | Mensaje |
|---|---|
name.no_value | {name} no tiene valor |
name.not_on_every_path | {{{name}}} no se define en todos los caminos antes de este paso |
name.unknown | Nombre desconocido {{{name}}}: agrega un parámetro o extrae una variable |
netsim
| Código | Mensaje |
|---|---|
netsim.not_running | El relé {id} ya no está en marcha |
node
| Código | Mensaje |
|---|---|
node.bind_invalid | {value} no es una dirección de escucha: usa IP:puerto, p. ej. 0.0.0.0:9001 |
node.header_invalid | {value} no es un nombre de encabezado válido |
node.load_alone | La carga sustituye a Repetir y Reintentar: desactívalos |
node.load_unsupported | Solo una solicitud HTTP puede ejecutarse bajo carga |
node.method_invalid | {value} no es un método HTTP |
node.not_found | El nodo {id} ya no existe |
node.osc_address | Las direcciones OSC empiezan por / ({value}) |
node.params_only | Aquí solo se pueden usar parámetros: la ejecución se suscribe antes de su primer paso |
node.range | Debe estar entre {min} y {max} |
node.repeat_too_long | Las repeticiones duran más de lo que puede durar una ejecución ({seconds} s) |
node.repeat_too_many | Más de {max} envíos: alarga el intervalo o acorta el tiempo |
node.repeat_unsupported | Solo los pasos que envían pueden repetirse |
node.required | Obligatorio |
node.retry_unsupported | Solo los pasos que envían o escuchan pueden reintentar |
node.rules_too_many | Como máximo {max} reglas de argumentos |
node.target_invalid | {value} no es una dirección con puerto, p. ej. 127.0.0.1:9000 |
node.too_long | Demasiado largo: como máximo {max} |
node.topic_filter | {value} no es un filtro de temas: + representa un nivel completo, y # solo el último nivel completo |
node.topic_wildcard | Un tema de publicación no puede contener los comodines + o # |
node.url_invalid | {value} no es una URL http:// o https:// |
osc
| Código | Mensaje |
|---|---|
osc.packet_malformed | Paquete OSC mal formado ({bytes} B) |
osc.pattern_char | “{char}” no se permite aquí en una dirección OSC |
osc.pattern_empty_segment | Parte vacía entre barras |
osc.pattern_empty_set | Conjunto [ ] vacío |
osc.pattern_range | El rango {range} va al revés |
osc.pattern_slash | Un patrón de dirección OSC empieza por / |
osc.pattern_too_long | El patrón de dirección supera los {max} caracteres |
osc.pattern_unclosed | [ o { sin cerrar |
param
| Código | Mensaje |
|---|---|
param.duplicate | El parámetro {name} se define dos veces |
param.name_invalid | El nombre de parámetro “{name}” debe empezar por una letra o _ y usar solo letras, dígitos y _ |
param.name_reserved | “{name}” está reservado y no puede ser el nombre de un parámetro |
param.too_large | El parámetro {name} ocupa más de {max} KiB |
param.unknown | Parámetro desconocido {name} |
params
| Código | Mensaje |
|---|---|
params.too_many | Como máximo {max} parámetros |
position
| Código | Mensaje |
|---|---|
position | posición {position} |
profile
| Código | Mensaje |
|---|---|
profile.active_missing | El perfil activo {name} no existe |
profile.duplicate | El perfil {name} se define dos veces |
profile.name_invalid | Los nombres de perfil tienen de 1 a {max} caracteres |
profile.unknown_param | El perfil {profile} define {name}, que no es un parámetro |
profile.values_too_many | El perfil {profile} define más de {max} valores |
profiles
| Código | Mensaje |
|---|---|
profiles.too_many | Como máximo {max} perfiles |
regex
| Código | Mensaje |
|---|---|
regex.invalid | {pattern} no es una expresión regular válida |
run
| Código | Mensaje |
|---|---|
run.join_waiting | Unir ramas aún espera {count} rama(s): por un enlace de entrada nunca llegó la ejecución, por ejemplo porque una rama tomó otro camino |
run.limit_range | Una ejecución puede durar de 1 a {max} segundos |
run.no_end | La ejecución se detuvo antes de llegar a Fin |
run.node_missing | Falta el nodo {id} |
run.not_a_check | Este nodo no es una comprobación |
run.not_a_wait | Este nodo no es una espera |
run.not_an_action | Este nodo no envía ni escucha |
run.override_unknown | Ejecutar con… define {name}, que no es un parámetro |
run.timeout | La ejecución duró más de {seconds} s y se detuvo |
runs
| Código | Mensaje |
|---|---|
runs.name_invalid | “{name}” no es un informe de ejecución |
runs.not_found | No existe la ejecución “{name}”: se eliminó su informe |
scan
| Código | Mensaje |
|---|---|
scan.host_required | Introduce el host que escanear |
secret
| Código | Mensaje |
|---|---|
secret.empty | Un secreto no puede estar vacío |
secret.missing | El secreto {name} no está guardado en este equipo: defínelo en Parámetros → Secretos |
secret.name_invalid | El nombre de secreto “{name}” debe empezar por una letra o _, usar solo letras, dígitos y _, y tener como máximo {max} caracteres |
secret.read_only | Aquí los secretos son de solo lectura: define {name} en el servidor (SIGNALLAB_SECRET_{name}, o un archivo llamado {name} en su carpeta de secretos) |
secret.store | El almacén de credenciales del sistema falló con {name} |
secret.too_large | Un secreto ocupa como máximo {max} KiB |
secret.unsupported | Los secretos se guardan en el Administrador de credenciales de Windows, que este sistema no tiene |
seed
| Código | Mensaje |
|---|---|
seed.range | La semilla debe estar entre 0 y {max} |
show
| Código | Mensaje |
|---|---|
show | Mostrar |
signals
| Código | Mensaje |
|---|---|
signals.encode | No se pudo escribir la biblioteca de señales como JSON |
signals.json_invalid | {path} no es una biblioteca de señales válida: error JSON en la línea {line}, columna {column}; corrige el archivo o elimínalo |
socket
| Código | Mensaje |
|---|---|
socket.option_failed | El sistema no aceptó la opción de socket {option} |
template
| Código | Mensaje |
|---|---|
template.arg_empty | Argumento vacío |
template.arg_integer | {function}: {value} no es un número entero |
template.arg_invalid | El argumento {value} debe ir entre comillas |
template.arg_number | {function}: {value} no es un número |
template.arg_quote | Comilla sin cerrar en los argumentos |
template.args_pick | pick(…) necesita al menos una opción |
template.args_random_float | random_float(min, max[, digits]) admite 2 o 3 argumentos |
template.args_random_int | random_int(min, max) admite 2 argumentos |
template.args_uuid | uuid() no admite argumentos |
template.bad_call | {text} no es una llamada a función válida |
template.bad_name | {text} no es un nombre válido |
template.bad_path | {text}: ruta no válida; usa .field, [0] o ["key"] |
template.digits | random_float admite de 0 a {max} decimales |
template.empty | {{ }} vacío |
template.needs_name | {head} necesita un nombre: {head}.NAME |
template.no_field | {name} no tiene el campo {path} |
template.node_fields | node solo tiene node.id |
template.now_fields | now solo tiene now.iso |
template.range | {function}: min {min} debe ser menor que max {max} |
template.run_fields | run solo tiene run.id y run.seed |
template.unclosed | {{ sin cerrar |
template.unknown_function | Función desconocida {name}() |
transport
| Código | Mensaje |
|---|---|
transport.address_in_use | {target} ya lo usa otro programa |
transport.address_unavailable | {target} no es una dirección de este equipo |
transport.denied | El sistema o un firewall no permitió el acceso a {target} |
transport.dns | No se puede resolver {target}: revisa el nombre de host |
transport.failed | Falló el envío a {target} |
transport.refused | {target} rechazó la conexión: nada escucha en ese puerto |
transport.reset | {target} cerró la conexión |
transport.target_invalid | {target} no es una dirección válida |
transport.timeout | {target} no respondió a tiempo |
transport.tls | No se pudo establecer una conexión segura con {target} (certificado o TLS) |
transport.unreachable | {target} es inaccesible: revisa la red y la dirección |
unknown
| Código | Mensaje |
|---|---|
unknown | Error inesperado del motor ({code}) |
variable
| Código | Mensaje |
|---|---|
variable.name_invalid | El nombre de variable “{name}” debe empezar por una letra o _ y usar solo letras, dígitos y _ |
variable.name_reserved | “{name}” está reservado y no puede ser el nombre de una variable |
variable.shadows_param | La variable {name} tiene el mismo nombre que un parámetro |
wait
| Código | Mensaje |
|---|---|
wait.bind_failed | No se puede escuchar en {target} |
wait.not_listening | No se está escuchando en {target} |
wait.receive_failed | La escucha en {target} se detuvo con un error |
wait.timeout | Ningún mensaje coincidente en {ms} ms (llegaron {unmatched} mensajes distintos a {target}) |
ws
| Código | Mensaje |
|---|---|
ws.close_code | {code} no es un código de cierre que envíe un cliente: usa 1000, o 3000–4999 para los propios de la aplicación |
ws.closed | La conexión WebSocket está cerrada ({code}) |
ws.connection_after | {id} no va antes de este paso, y es el que abre la conexión que usa este paso |
ws.connection_unknown | {id} no es un nodo Conectar WebSocket de este experimento |
ws.handshake_failed | Falló el Upgrade a WebSocket con {url} |
ws.handshake_status | {url} respondió HTTP {status} en lugar de cambiar a WebSocket |
ws.header_invalid | El encabezado {name} no se puede enviar en la solicitud Upgrade |
ws.message_too_large | Un mensaje WebSocket está limitado a {max} bytes |
ws.not_connected | No hay ninguna conexión WebSocket {id} abierta |
ws.payload_required | Indica el mensaje como texto o como bytes hex |
ws.protocol_error | La conexión con {url} se rompió: el servidor no respetó el protocolo WebSocket |
ws.protocol_invalid | {value} no es un nombre de subprotocolo: sin espacios, comas ni barras |
ws.subprotocol_refused | {url} no aceptó ninguno de los subprotocolos ofrecidos |
ws.url_invalid | {url} no es una dirección WebSocket: usa ws://host:port/path o wss://… |
Campos
El nombre que un mensaje da al campo del que habla.
| Campo | Nombre |
|---|---|
address | Dirección |
argument | Argumento |
attempts | Intentos |
auth | Autenticación |
bind | Escuchar en |
body | Cuerpo |
broker | Bróker |
burst_length | Longitud de ráfaga |
burst_start | Pérdida en ráfagas |
code | Código de cierre |
condition | Condición |
conditions | Condiciones |
connection | Conexión |
corrupt | Corrupción |
delay_ms | Retardo |
duplicate | Duplicación |
duration_s | Duración |
emulator | Emulador |
expected | Esperado |
expected_text | Texto esperado |
fallback | Solicitudes que ninguna ruta acepta |
greeting | Saludo |
header_name | Nombre del encabezado |
header_value | Valor del encabezado |
headers | Encabezados |
hex | Bytes hex |
host | Host |
jitter_ms | Jitter |
json_path | Ruta JSON |
latency_ms | Latencia |
listen | Escuchar en |
load | Carga |
load_base | Tasa base |
load_concurrency | Concurrencia |
load_duration | Duración |
load_every | Duración del escalón |
load_from | Desde |
load_peak | Tasa de pico |
load_rate | Tasa |
load_spike | Pico |
load_step | Escalón |
load_steps | Escalones |
load_to | Hasta |
loop_max | Iteraciones |
loss | Pérdida de paquetes |
max_ms | Límite de tiempo |
message | Mensaje |
method | Método |
ms | Duración |
name | Nombre |
outage_down | Caído durante |
outage_up | Activo durante |
password | Contraseña |
path | Ruta de acceso |
pattern | Patrón |
payload | Carga útil |
port | Puerto |
profile_name | Nombre del perfil |
protocols | Subprotocolos |
qos | QoS |
rate | Tasa |
rate_kbps | Ancho de banda |
reason | Motivo |
relay | Degradación |
reorder | Reordenación |
repeat | Repetición |
repeat_count | Número de envíos |
repeat_duration | Repetir durante |
repeat_interval | Intervalo |
repeat_jitter | Jitter |
reply | Respuesta |
reply_address | Dirección de respuesta |
reply_arg | Argumento de respuesta |
reply_args | Argumentos de respuesta |
reply_bind | Respuesta en |
reply_pattern | Patrón de respuesta |
reply_payload | Carga útil de respuesta |
reply_topic | Tema de respuesta |
reset | Restablecer conexión |
responses | Respuestas |
retained | Mensajes retenidos |
retry | Reintento |
retry_delay | Pausa entre intentos |
rule | Regla |
rule_value | Valor de la regla |
rules | Reglas |
stall | Semiabierta |
status | Estado |
target | Destino |
threshold | Umbral |
thresholds | Umbrales |
timeout_ms | Tiempo de espera |
to | Responder a |
token | Token |
topic | Tema |
url | URL |
username | Nombre de usuario |
value | Valor |
variable | Variable |
weight | Peso |