Webhooks
Configurar Webhooks
Establece notify_url en tus Assembly Instructions, al mismo nivel que steps. Cuando la Assembly
alcanza un estado terminal, Transloadit envía una solicitud HTTP POST a esa URL.
Cualquier código de estado desde 200 hasta, sin incluir,
300 confirma la entrega. Las redirecciones y los errores del cliente o del servidor se consideran fallos. De forma predeterminada,
Transloadit reintenta las entregas fallidas 5 veces con un factor exponencial de 1,97.
La confirmación indica la recepción, no que el procesamiento se haya completado correctamente. Inspecciona el
estado ok o el código error de la carga útil verificada
para distinguir las Assemblies completadas, canceladas y fallidas. Un reenvío de una Notification
también puede entregar un Assembly Status no terminal; no supongas que cada entrega significa que el procesamiento ha finalizado.
Limitar la carga útil de la Notification
De forma predeterminada, un Webhook incluye el Assembly Status completo. Establece notification_payload en un array
que contenga cualquier combinación de estos filtros admitidos:
without_params: se omiten los campos sin procesar de nivel superior de las Assembly Instructions:params,templateymerged_params.without_result_meta_data: se omitemetade cada archivo deresults.without_results: se omite el objetoresultsde nivel superior.without_upload_meta_data: se omitemetade cada archivo deuploads.without_uploads: se omite el arrayuploadsde nivel superior.
Los reenvíos de Notifications reutilizan los filtros proporcionados en la solicitud original de la Assembly. Los filtros definidos únicamente
en un Template no se conservan al reenviar, por lo que un reenvío puede incluir datos omitidos en la
Notification inicial. Proporciona notification_payload en la solicitud original de la Assembly cuando los reenvíos deban
usar los mismos filtros.
El esquema de la carga útil que aparece a continuación permite estas omisiones. El campo meta de una carga puede estar ausente incluso cuando el
archivo cargado sigue presente en uploads. Los demás campos conservan su significado en el Assembly Status. Acepta campos
adicionales para mantener la compatibilidad, pero no dependas de campos de diagnóstico no documentados.
Verificar la firma
Los Webhooks de las Assemblies usan el tipo de medio application/x-www-form-urlencoded. El
campo transloadit contiene la cadena serializada exacta del Assembly Status JSON, y el
campo signature contiene su HMAC hexadecimal en minúsculas.
Para verificar un Webhook:
- Lee los campos de formulario
transloaditysignaturesin modificar la cadena de la carga útil. - Calcula un resumen hexadecimal
HMAC-SHA1sobre los bytes exactos de la cadenatransloadit, usando el Auth Secret de confianza seleccionado como se describe a continuación. - Compara el resumen calculado con
signaturemediante una comparación de tiempo constante. - Analiza
transloaditcomo JSON solo después de que las firmas coincidan.
La Notification inicial de una Assembly usa el Auth Secret de la Auth Key que autenticó su
creación, incluso cuando se creó mediante una reejecución de una Assembly. Los reenvíos de Notifications buscan primero
la Auth Key registrada en el Assembly Status como api_auth_key_id. Si esa clave no está registrada,
no se puede resolver, se ha eliminado o su búsqueda falla, el reenvío de la Notification usa en su lugar el
Auth Secret del solicitante autenticado del reenvío.
Las reejecuciones de Assemblies conservan el api_auth_key_id histórico de la Assembly de origen. Por ejemplo, si la clave A crea
una Assembly y la clave B la reejecuta, la Notification inicial de la nueva Assembly se firma con el
secreto de B. El reenvío de esa Notification puede usar el secreto de A, incluso cuando B llama a ambos endpoints de reenvío y reejecución
y ambas claves siguen activas. Mantén disponibles para tu verificador los secretos aplicables de la Assembly de origen y de la creación mediante reejecución;
no supongas que todas las entregas de una Assembly usan el mismo secreto.
Selecciona los secretos de verificación a partir de una configuración de confianza del lado del servidor para el Workspace y la Assembly esperados, no a partir de campos de la carga útil sin verificar. Cuando sea aplicable más de un secreto configurado, acepta la solicitud solo si su firma coincide con uno de esos secretos de confianza. Si no coincide con ninguno, rechaza la solicitud; no omitas la verificación para aceptar un reenvío.
A diferencia de las firmas actuales de las solicitudes de API, el campo signature del Webhook es un resumen
sha1 sin prefijo por motivos de compatibilidad con versiones anteriores. Trata la carga útil como no confiable y rechaza la solicitud
cuando falte cualquiera de los dos campos, la firma tenga un formato incorrecto o la comparación falle.
Usa una de las funciones auxiliares de verificación de nuestros SDK cuando esté disponible. Si implementas la verificación por tu cuenta, no vuelvas a serializar el JSON analizado antes de calcular el HMAC: los espacios en blanco y el orden de las claves de los objetos forman parte de la secuencia de bytes firmada.
import { createHmac, timingSafeEqual } from 'node:crypto'
// authSecret must come from trusted server-side configuration.
function verifyTransloaditWebhook({ authSecret, payload, signature }) {
if (typeof payload !== 'string' || typeof signature !== 'string') return false
if (!/^[0-9a-f]+$/.test(signature)) return false
const expected = createHmac('sha1', authSecret).update(payload, 'utf8').digest()
if (signature.length !== expected.length * 2) return false
const received = Buffer.from(signature, 'hex')
return received.length === expected.length && timingSafeEqual(received, expected)
}
Optar por una firma más robusta
Establece notification_signature_algo en sha256 o sha384 al crear o actualizar una
Auth Key. Esta configuración es independiente del
signature_algo de la clave, que controla la firma de las solicitudes de API. Las claves existentes y las nuevas tienen null como valor predeterminado;
omitir esta configuración al actualizar conserva su valor, y establecerla en null desactiva la cabecera adicional.
Las claves en las que se habilita esta opción añaden una cabecera Transloadit-Signature que contiene
sha256:<lowercase hex digest> o sha384:<lowercase hex digest>. El campo de formulario heredado signature
permanece sin cambios. Ambas firmas abarcan los bytes UTF-8 de la cadena JSON filtrada exacta
contenida en el campo de formulario transloadit decodificado, antes de la codificación de URL. No firmes el cuerpo HTTP codificado
ni analices y vuelvas a serializar el JSON antes de verificarlo.
Las Notifications iniciales usan la configuración de la clave cargada cuando se autentica la Assembly. Cambiar una clave no modifica las Assemblies que ya están en curso. Los reenvíos explícitos de Notifications consultan conjuntamente el secreto actual de la clave registrada y su algoritmo de notificación; la configuración del solicitante se usa en conjunto si la búsqueda de la clave histórica recurre a la alternativa descrita anteriormente. Los reintentos automáticos conservan el algoritmo seleccionado y la carga útil serializada para esa entrega.
Despliega un verificador que reconozca la nueva cabecera antes de habilitarla. Cuando tu integración requiera la firma más robusta, rechaza las solicitudes con una cabecera ausente o no válida y rechaza los algoritmos distintos del configurado en tu verificador. Nunca recurras silenciosamente al campo SHA-1. Durante la migración, despliega primero todos los emisores de notificaciones y los controladores de reenvío. Deja que las cachés de configuración de las claves se actualicen y que las Assemblies anteriores finalicen, y confirma que la cabecera llegue en las entregas de las Assemblies creadas después del cambio antes de exigirla. Una vez que los receptores exijan la cabecera, es preferible actualizar el emisor a una versión posterior: revertirlo a una compilación que solo admita el formato heredado interrumpe la entrega a menos que los receptores restablezcan primero la compatibilidad con las notificaciones que solo usan el formato heredado.
import { createHmac, timingSafeEqual } from 'node:crypto'
// expectedAlgorithm and authSecret come from trusted server-side configuration.
function verifyStrongTransloaditWebhook({ authSecret, expectedAlgorithm, payload, signature }) {
if (expectedAlgorithm !== 'sha256' && expectedAlgorithm !== 'sha384') return false
if (typeof payload !== 'string' || typeof signature !== 'string') return false
const prefix = `${expectedAlgorithm}:`
if (!signature.startsWith(prefix)) return false
const hex = signature.slice(prefix.length)
if (!/^[0-9a-f]+$/.test(hex)) return false
const expected = createHmac(expectedAlgorithm, authSecret).update(payload, 'utf8').digest()
if (hex.length !== expected.length * 2) return false
return timingSafeEqual(Buffer.from(hex, 'hex'), expected)
}
La verificación de la firma autentica la carga útil; no evita las entregas duplicadas. Haz que el procesamiento sea idempotente usando la identidad verificada de la Assembly y el estado propio de la aplicación.
Campos de formulario del webhook
JSON Schema completo
Transloadit envía solo los campos indicados para este objeto.
| Campo | Tipo y descripción |
|---|---|
signatureobligatorio | stringHMAC-SHA1 hexadecimal en minúsculas de la cadena transloadit exacta, sin prefijo de algoritmo. Usa un Auth Secret de confianza y una comparación resistente a ataques de temporización. Patrón de validación (expresión regular)^[0-9a-f]{40}$ |
transloaditobligatorio | stringTexto JSON exacto del Assembly Status filtrado. Verifica la firma sobre esta cadena sin modificar antes de analizarla como JSON. |
Payload JSON verificado
JSON Schema completo
| Campo | Tipo y descripción | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
account_id | null | string | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
account_name | null | string | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
account_slug | null | string | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
api_auth_key_id | null | string | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
assemblyId | string | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
assembly_id | stringEl ID único de esta Assembly. Puedes almacenarlo en una base de datos cuando se crea una Assembly y usarlo para relacionar las Notifications entrantes. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
assembly_ssl_url | null | stringLa URL única que se utiliza para consultar el estado actual de esta Assembly, pero preparada para
usarse mediante SSL/HTTPS. Todas las solicitudes a la API que se envían a | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
assembly_url | null | stringLa URL única que se utiliza para consultar el estado actual de esta Assembly. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
build_id | stringIdentificador de compilación opcional para que el equipo de soporte pueda investigar problemas. Trátalo como un valor opaco; puede cambiar entre Assemblies. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
bytes_expected | numberLa cantidad de bytes que esta Assembly espera que se suban. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
bytes_received | numberLa cantidad de bytes que se han subido hasta el momento a esta Assembly. Los clientes utilizan este valor principalmente para mostrar el progreso de la subida. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
bytes_usage | number | nullLa cantidad total de bytes procesados por esta Assembly que se contabilizan en tu factura de
uso. La suma de | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
client_agent | null | stringEl agente de usuario de quien realiza la subida no se expone; este campo obsoleto siempre es | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
client_ip | null | stringLa dirección IP de quien realiza la subida no se expone; este campo obsoleto siempre es | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
client_referer | null | stringLa URL de referencia de quien realiza la subida no se expone; este campo obsoleto siempre es | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
companion_url | null | stringLa URL del servidor Companion con el que esta Assembly puede comunicarse. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
cron_input_file_limit | integer (mínimo: 1, máximo: 1000)Número máximo efectivo de archivos de entrada para una Assembly programada. La recuperación automática tras un fallo conserva este límite, incluso cuando las Instructions guardadas están deshabilitadas. Las Assemblies normales omiten este campo. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
executing_jobs | Array<string>Esquema de los elementos del arraystring | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
execution_duration | number | nullEl tiempo que tardó Transloadit en ejecutar esta Assembly, en segundos. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
execution_start | null | string | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
expected_tus_uploads | number | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
fields | objectUn mapa de claves y valores de cualquier campo adicional presente en tu formulario, para integraciones que no pueden usar
la encapsulación Esquema de propiedades adicionalescualquier valor | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
finished_tus_uploads | number | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
has_dupe_jobs | boolean | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ignored_error_count | number | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ignored_errors | Array<object>Esquema de los elementos del array
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
info |
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
info. | number | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
instance | null | string | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
is_infinite | boolean | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
jobs_queue_duration | number | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
last_job_completed | null | string | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
merged_params | null | string | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
message | stringUn mensaje legible que explica el estado de esta Assembly. No siempre está presente. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
notify_duration | number | nullTiempo transcurrido durante la entrega, en segundos, incluidos los reintentos automáticos y las esperas entre ellos. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
notify_error | null | string | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
notify_response_code | number | null | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
notify_response_data | null | string | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
notify_start | null | string | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
notify_status | null | string | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
notify_url | null | string | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
num_input_files | number | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
params | null | string | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
parent_assembly_status | cualquier valor | nullPuede aplicarse cualquiera de los esquemas siguientes: cualquier valorcualquier valornull | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
parent_id | null | string | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
previousStep | stringNombre del Step anterior relacionado con el error, cuando esté disponible. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
queue_duration | number | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
region | string | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
results | objectLos archivos de resultados que Transloadit ha producido hasta el momento. Cada clave de este objeto es el nombre del
Step que produjo un archivo específico. Como los Robots de almacenamiento no producen archivos,
los nombres de sus Steps no se incluyen aquí. Si se produce un Esquema de propiedades adicionalesArray<object>Los detalles adicionales del esquema están disponibles en el JSON Schema completo. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
running_jobs | Array<string>Esquema de los elementos del arraystring | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
start_date | stringLa fecha y hora en que comenzó la subida para esta Assembly. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
started_jobs | Array<string>Esquema de los elementos del arraystring | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
started_tus_uploads | number | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
step | stringNombre del Step relacionado con el error, cuando esté disponible. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
template | null | string | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
template_id | null | string | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
template_name | null | string | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
transloadit_client | null | string | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
tus_uploads | Array<object>Esquema de los elementos del array
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
tus_url | stringLa URL del servidor tus que utiliza esta Assembly para las subidas reanudables. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
update_stream_url | null | stringLa URL de un flujo de eventos enviados por el servidor desde el que puedes obtener actualizaciones de estado en tiempo real de esta Assembly. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
upload_duration | numberEl tiempo que tardó quien realizó la subida en subir los archivos, en segundos. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
upload_meta_data_extracted | boolean | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
uploads | Array<object>Un arreglo de archivos subidos para esta Assembly. Para obtener más información, consulta la documentación de metadatos. Esquema de los elementos del array
Puede aplicarse cualquiera de los esquemas siguientes: propiedades obligatorias: basename, ext, field, id, mime, name, size, type, url: object
Variante 2: object
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
uppyserver_url | null | string | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
usage_tags | string | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
virusname | string | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
warnings | Array<object>Esquema de los elementos del array
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
websocket_url | null | stringLa URL de un servidor Websocket (utiliza Socket.IO) desde el que puedes obtener actualizaciones en tiempo real sobre el estado de esta Assembly. |
Puede aplicarse cualquiera de los esquemas siguientes:
ok: "ASSEMBLY_EXECUTING" | "ASSEMBLY_REPLAYING" | "ASSEMBLY_UPLOADING"
Transloadit puede enviar campos adicionales.
| Campo | Tipo y descripción |
|---|---|
error | nuncaIndica un estado de error. Esta clave solo está presente si la Assembly ha fallado. Es posible que se añadan nuevos códigos de error. Trata los códigos no reconocidos como fallos y conserva sus valores para inspeccionarlos mediante programación. Este valor está prohibido. |
okobligatorio | "ASSEMBLY_EXECUTING" | "ASSEMBLY_REPLAYING" | "ASSEMBLY_UPLOADING"Indica un estado del ciclo de vida sin error, incluidos los estados de subida, ejecución, solicitud abortada y Assembly cancelada. El procesamiento correcto se indica con |
ok: string
Transloadit puede enviar campos adicionales.
| Campo | Tipo y descripción |
|---|---|
error | nuncaIndica un estado de error. Esta clave solo está presente si la Assembly ha fallado. Es posible que se añadan nuevos códigos de error. Trata los códigos no reconocidos como fallos y conserva sus valores para inspeccionarlos mediante programación. Este valor está prohibido. |
okobligatorio | stringIndica un estado del ciclo de vida sin error, incluidos los estados de subida, ejecución, solicitud abortada y Assembly cancelada. El procesamiento correcto se indica con Valores permitidos (6)
|
propiedades obligatorias: error
Transloadit puede enviar campos adicionales.
| Campo | Tipo y descripción |
|---|---|
cmd | string | Array<string | number>Detalles opcionales del comando de procesamiento para investigar problemas. Los detalles de diagnóstico pueden variar; usa el código Puede aplicarse cualquiera de los esquemas siguientes: stringArray<string | number>Array<string | number>Esquema de los elementos del arraystring | number |
errorobligatorio | string (longitud mínima: 1)Indica un estado de error. Esta clave solo está presente si la Assembly ha fallado. Es posible que se añadan nuevos códigos de error. Trata los códigos no reconocidos como fallos y conserva sus valores para inspeccionarlos mediante programación. Valores conocidos (370); puede haber otros valores
|
exitCode | number | nullEstado de salida opcional de un comando de procesamiento que ha fallado. Los detalles de diagnóstico pueden variar; usa el código |
exitSignal | null | stringSeñal opcional que terminó un comando de procesamiento. Los detalles de diagnóstico pueden variar; usa el código |
file | string |
headers | objectEsquema de propiedades adicionalescualquier valor |
is_private_address | boolean |
name | string |
numRetries | number |
ok | null |
playwright_error_code | string |
reason | null | string | number | boolean | Array<cualquier valor> | objectDetalles de diagnóstico opcionales. No asumas que este valor es una cadena ni lo muestres directamente; usa Puede aplicarse cualquiera de los esquemas siguientes: nullstringnumberbooleanArray<cualquier valor>Array<cualquier valor>Esquema de los elementos del arraycualquier valorobjectobjectEsquema de propiedades adicionalescualquier valor |
response_code | number | null |
retries | number |
retryable | boolean |
stderr | stringSalida de diagnóstico opcional de un comando de procesamiento para investigar problemas. Los detalles de diagnóstico pueden variar; usa el código |
stdout | stringSalida estándar opcional de un comando de procesamiento para investigar problemas. Los detalles de diagnóstico pueden variar; usa el código |
url | string |
url_host | null | string |