--- title: "1.11.1 — Fleet deploys use complete, bounded runner rosters" description: "Django-MOJO 1.11.1 fixes fleet deployment failures in large Redis keyspaces and applies the same fail-closed, complete-roster guarantee to platform and WebApp deployments." date: "2026-08-10" tags: ["release"] canonical: "https://django-mojo.sitesmojo.com/changelog/1-11-1/" --- Django-MOJO 1.11.1 fixes fleet deployment failures in large Redis keyspaces and applies the same fail-closed, complete-roster guarantee to platform and WebApp deployments. ### Fixed - Fleet and WebApp deployments now discover runners through primary-read, channel-specific indexes, so large unrelated Redis keyspaces and unrelated worker channels cannot make a healthy fleet look incomplete. - Deployment roster checks now fail closed for empty, partial, malformed, stale, or implausibly future-dated runner declarations instead of silently targeting only part of the fleet. - Job engines now register before startup succeeds and expire abandoned runner-index keys after crashes. ### Upgrade notes - When upgrading from 1.11.0 or earlier, restart every job engine and wait for one heartbeat before the first platform or WebApp deployment. The engines populate the new indexes automatically; do not seed Redis manually.