Skip to content

v0.18.18.

Complete release notes · 2026-11-04. Read upgrade instructions and runtime limits before deploying.

Fixed

  • A sleeping node service could not be woken by visitors after one of its domains was edited. Adding a header, turning SSL on or off, or any other domain change made every wake demand fail, and visitors saw "Waking up" until someone pressed Wake or redeployed. Changing a health setting (path, check, command or timeout) had the same effect. Wake now goes through after either kind of edit. Sleep admission already binds the routes to the idle evidence, and readiness uses the current health settings. Services that went to sleep on 0.18.17 still wake after the upgrade (R2).
  • On a panel with several nodes, a wake could stall when other nodes were unreachable. The proxy update now goes to the waking service's own node first, ahead of the rest of the fleet. Before, nodes were updated in id order, and two unreachable nodes ahead of it could use up the 30 s publication window, so the wake was refused on every retry. Deploys and autoscaling also update their own node first (R2).
  • A node service's wake could stay unfinished while two other nodes were unreachable, even after the waking node had already loaded the app route. The next routing update then sent visitors back to the "Waking up" page, and every retry failed the same way. Wake now completes once the waking node confirms the route (R2).
  • Changing the CPU or memory limits of a sleeping node service left it unable to wake on visits: the waking page stayed up and the status said "waking" until someone pressed Wake. While a node service sleeps, or is going to sleep or waking, new limits are now saved and apply on the next deploy (R2).
  • With NINEDEPLOY_NODE_SLEEP_AUTOMATION=off, a node sleep interrupted before its containers stopped (for example by a panel restart) left the running service's domains on the waking page with no way back: Wake answered "not asleep" and the panel showed no Wake button. Wake now accepts that state and the panel offers it (R2).
  • Terminal & exec explains why it closes when the panel is opened at an address other than its configured one. Before, the terminal only showed "Access was refused: the session was revoked, or this page is not a panel origin." Now it names the page's address and says to use the address in NINEDEPLOY_PUBLIC_URL, or to add this address there or to NINEDEPLOY_CORS_ORIGINS.
  • Port mappings under Service → Network showed only the starting container port of a saved range. They now show the complete range, a typed starting port expands to the range on blur, and an explicit range that does not match the host range is refused. The field is wider so both ends stay visible.

Source CHANGELOG.md at 6046cfe8