Skip to content

0.22.6

Latest

Choose a tag to compare

@r4victor r4victor released this 29 Oct 12:45
· 3 commits to master since this release
575d5a2

Backends

Orphaned resources

In rare cases, a dstack bug or server crash can leave provisioned resources orphaned. This release adds automatic detection and optional cleanup for the aws, azure, gcp, nebius, and runpod backends. Resources are identified by their cloud tags or names and matched against the project's provisioning records.

By default, detection runs in report mode: it writes logs, emits events, and reports orphaned resources to Sentry if DSTACK_SENTRY_DSN is configured.

$ dstack event --since 1d
[2026-10-29 16:25:03] [instance my-fleet-2] Orphaned resources found in aws/eu-central-1,
  provider_ref q4rd28b3wm8y, instance id i-0047e4040282e969c:
  instance i-0047e4040282e969c (t3.medium, running)

Detection and cleanup cover cloud instances and their attached resources, such as IPs and disks. Support for volumes and gateways is on the roadmap.

To delete orphaned resources automatically, set DSTACK_SERVER_ORPHAN_CLEANUP_MODE=delete. Future releases will make delete the default.

UI

Offers

GPU and CPU offers are now grouped by availability, keeping unavailable capacity separate. Per-GPU VRAM reporting has also been corrected.

The Offers page now shows both on-demand and spot offers by default. Displayed prices are rounded to at most two decimal places.

Events

In dstack Factory and Sky, the global Events page now supports relative and absolute date/time filters. Click Recorded At to switch between newest-first and oldest-first order.

Sorting is also available on resource Events tabs in open-source dstack.

Deprecations

  • The DSTACK_ROUTER_INTERNAL_IP environment variable, which dstack sets for replicas of services that use a dynamo router, is deprecated in favor of ${{ groups[i].replicas[j].IP_ADDRESS }}. The new interpolation can reference any replica in the service, including the router. The variable may be removed as early as the next release.

    # Before
    - export ETCD_ENDPOINTS=http://$DSTACK_ROUTER_INTERNAL_IP:2379
    # After, if the router is the first group
    - export ETCD_ENDPOINTS=http://${{ groups[0].replicas[0].IP_ADDRESS }}:2379

Documentation

Services

The NVIDIA Dynamo example now runs etcd as a separate replica group, so the router no longer hosts etcd and NATS.

Docker registry

The Private registry section now also explains how to use registry_auth with public registries to reduce rate-limit errors through higher limits for authenticated users.

What's changed

Full changelog: 0.22.5...0.22.6