Solución de problemas
Busca en esta página (o en todo el sitio con /) el síntoma o el código de error que ves. Cada entrada explica la causa y la solución. ¿Sigues sin resolverlo? Escribe a [email protected] con el ID de la petición (cabecera X-Request-ID, o requestId / request_id en los errores de los SDK).
El elemento no aparece
Sección titulada «El elemento no aparece»La guía de tallas, el botón o el elemento integrado nunca se muestran.
- El visitante está en el grupo de control A/B. Con un experimento activo, un 10–50 % de los visitantes no ve nada, a propósito. Compruébalo con
await tys.experiment()(arm: "holdout"), o detén el experimento en Studio → Resultados mientras pruebas. - El contenedor aún no existe.
mount("#size-guide")lanzamount_not_foundsi el selector no encuentra nada. Monta el elemento cuando el contenedor ya esté en la página. - El origen de la página no está registrado para el modo de la clave. Añádelo en Studio → Ajustes → Tiendas → Sitios permitidos (
https://y sin ruta;http://localhostfunciona en modo de prueba sin registrarlo). - Una Content Security Policy nos bloquea. Permite
script-src https://js.tryyoursize.comyframe-src https://embed.tryyoursize.com. La consola del navegador muestra la URL bloqueada.
window_unreachable o un evento loaderror
Sección titulada «window_unreachable o un evento loaderror»Nuestra ventana no cargó o no conectó en 15 segundos. Las mismas causas que arriba (origen, CSP), o un filtro de red o bloqueador de anuncios que bloquea tryyoursize.com. Escucha loaderror y muestra tu propia tabla de tallas. Consulta window_unreachable.
secret_key_in_browser o secret_key_in_app
Sección titulada «secret_key_in_browser o secret_key_in_app»Una clave secreta (sk_…) o restringida (rk_…) llegó a un navegador o a una app. Usa allí la clave publicable y rota la clave secreta en Studio si el código llegó a publicarse.
app_not_allowed en una app de iOS o Android
Sección titulada «app_not_allowed en una app de iOS o Android»La app no está registrada para la clave. Añade ios-app://<bundle id> o android-app://<package> (en minúsculas) a los sitios permitidos del modo de prueba. tys.appOrigin muestra el valor exacto. El modo real para apps llegará pronto.
La guía de tallas siempre dice «Guía de tallas»
Sección titulada «La guía de tallas siempre dice «Guía de tallas»»Quien compra no tiene sesión de TryYourSize en tu web (status: "signed_out"). Es lo esperado hasta que inicie sesión una vez en nuestra ventana. Cada sitio (origen) tiene su propia conexión: una sesión en staging.brand.com no vale en www.brand.com.
El estado siempre es unavailable
Sección titulada «El estado siempre es unavailable»Hay sesión, pero todavía no hay talla para este producto:
- El producto no tiene una prenda publicada en TryYourSize (el modo real responde solo con versiones publicadas; el de prueba, con borradores). Publícala en Studio o con
garments.publish(). - El
productque pasas no es el SKU o el ID sincronizado con TryYourSize.tys.products.retrieve("<tu valor>")en tu servidor te lo dice. - Quien compra aún no se ha probado esta prenda. Ver una página nunca inicia una simulación; la inicia quien compra con «Verlo puesto». Cuando termina, recibes otro evento
recommendation. - El visitante está en el grupo de control: siempre recibe
unavailable.
La talla no usa mis etiquetas
Sección titulada «La talla no usa mis etiquetas»Las tallas vuelven a través del mapa de tallas del producto (talla de Studio → tu etiqueta). Sin entrada, recibes la etiqueta de Studio. Asígnalas en Studio o con sizeMap.save(). unmapped_shop_values lista los valores de tus variantes sin talla de Studio.
401 unauthorized de la API
Sección titulada «401 unauthorized de la API»Falta la clave, está mal copiada o revocada, o se usó una clave publicable en el servidor. Las llamadas de servidor necesitan Authorization: Bearer sk_… (o rk_…). Consulta unauthorized.
403 forbidden de la API
Sección titulada «403 forbidden de la API»A una clave restringida le falta el permiso (cada operación lista sus Key scopes), o una clave de prueba lee datos reales (o al revés). Consulta forbidden.
handle_expired, handle_invalid o handle_mode_mismatch
Sección titulada «handle_expired, handle_invalid o handle_mode_mismatch»Los handles de recomendación duran una hora y pertenecen a un modo. Pide uno nuevo al navegador con tys.recommendationHandle(); usa una clave secreta de prueba con un handle de una clave publicable de prueba. Si quien compra desconectó tu tienda, recibes handle_invalid. Consulta handle_expired.
429 rate_limited
Sección titulada «429 rate_limited»Demasiadas peticiones. Espera los segundos de Retry-After y reintenta con espera creciente; los SDK lo hacen por ti. Con una Idempotency-Key, reintentar un POST es seguro. Consulta Límites de peticiones.
409 idempotency_key_in_use o 422 idempotency_key_reused
Sección titulada «409 idempotency_key_in_use o 422 idempotency_key_reused»idempotency_key_in_use: la primera petición con esa clave aún se está procesando; reintenta en breve. idempotency_key_reused: enviaste la misma clave con otro cuerpo. Usa una clave por petición distinta. Consulta Idempotencia.
La firma de un webhook no se verifica
Sección titulada «La firma de un webhook no se verifica»Casi siempre, el cuerpo se analizó y se volvió a serializar antes de verificarlo. Verifica los bytes sin procesar: en Express usa express.raw({ type: "application/json" }); en Flask, request.get_data(). Comprueba que usas el secreto whsec_… del propio endpoint (los de prueba y los reales son distintos) y que el reloj del servidor es correcto (5 minutos de tolerancia). Consulta Webhooks.
Los pedidos no aparecen en Resultados
Sección titulada «Los pedidos no aparecen en Resultados»Resultados cuenta los pedidos enviados con POST /v1/orders en modo real. Para la comparación A/B, cada pedido necesita el grupo: envía visitor_id (de tys.experiment() en el navegador, guardado con el carrito) o experiment_arm. Un pedido sin ninguno se cuenta fuera del experimento.
Quien compra eligió una talla, pero mi selector la cambió
Sección titulada «Quien compra eligió una talla, pero mi selector la cambió»Preselecciona solo hasta que quien compra elija: guarda una marca de «tocado» y no sobrescribas su elección cuando llegue otro evento recommendation. Consulta Preseleccionar la talla recomendada.
¿Te ha resultado útil esta página?
Gracias. Leemos todas las respuestas.