Volver a la wiki

Cartelería pública servía proyecto antiguo tras publicar (caché Cloudflare 4h)

Cuándo y duración

Detectado 16-09-2026 en vivo en el CCIB (Expo de Innovación).

Síntomas

Tras publicar un vídeo en Digital Signage (pestaña Publish), los SpinetiX XC1030 mostraban la disposición anterior (pantalla negra o vídeo viejo). Al recargar manualmente en el terminal (Ctrl+F5 en el navegador remoto del SpinetiX), el vídeo aparecía. El problema desaparecía a las 4 horas.

Causa raíz

Cloudflare cacheaba los archivos público-accesibles (spx-listing.xml, project.svg, index.svg) 4 horas por extensión de archivo (política de caché por defecto en CF). Cuando se publicaba un cambio, el servidor respondía con el nuevo contenido en la API REST, pero el SpinetiX descargaba los archivos SVG/XML del CDN en caché.

La regla de bypass de caché /publish/* (vías de cambio) existía pero no cubría los endpoint de lectura de proyecto (/staging/public/…).

Fix aplicado

Commit: 43c1603c (v1.135.2, 16-09-2026)

Añadido header Cache-Control: no-store en la vista signage/views_publish.py → endpoints de lectura público (spx-listing.xml, project.svg, index.svg). Cloudflare ahora NO cachea estos recursos; el servidor de CreaRack es la fuente única.

Lecciones

  1. CDN + recursos dinámicos: Cloudflare cachea por extensión, no por URL semántica. Los recursos públicos de Signage se recargan frecuentemente (cada publicación).
  2. Cache-Control: no-store vs max-age=0: no-store es la garantía fuerte (“nunca cachees esto”); max-age=0 cacheaba 1 segundo de todos modos (cachea siempre, solo con Expires cero).
  3. Prueba en vivo > prueba en local: la regresión NO se reproduce en localhost (no hay Cloudflare). Solo aparece en PROD.

Preventivos

Relacionado

El gateway de Cloudflare se reforzó hoy con nueva regla de bypass /publish/* (deuda de otra sesión).

Véase también

Subir