---
title: "DF0069: Service Version Range Not Satisfied"
description: "The installed service \"{package}@{installed}\" does not satisfy the declared range \"{required}\"; installing it anyway."
canonical_url: "https://devfra.me/errors/df0069"
---
# DF0069: Service Version Range Not Satisfied

> The installed service "\{package}@\{installed}" does not satisfy the declared range "\{required}"; installing it anyway.

## Message

> The installed service "`{package}`@`{installed}`" does not satisfy the declared range "`{required}`"; installing it anyway.

## Cause

A service descriptor declares a `version` range, and the resolved service's own `version` falls outside it. The descriptor isn't marked `required`, so the service still installs: the range is a compatibility hint and this warning surfaces the drift. The advertised meta carries the real version, so client UIs can gate features on it. The `required: true` variant throws [`DF0068`](https://devfra.me/errors/DF0068) instead.

## Example

```ts
defineDevframe({
  services: [
    // Installed: @devframes/service-shiki@2.0.0 → warns, still installs.
    { package: '@devframes/service-shiki', version: '^1' },
  ],
})
```

## Fix

Align the installed service package with the declared range to silence the warning, or widen the declared range when the newer service is actually fine.

## Source

- [`packages/devframe/src/node/host-services.ts`](https://github.com/devframes/devframe/blob/main/packages/devframe/src/node/host-services.ts): the pre-setup construction checks each descriptor's `version` range against the resolved definition.


## Sitemap

See the full [sitemap](https://devfra.me/sitemap.md) for all pages.
