---
title: "DF8106: Connection Meta Not Served"
description: "The host cannot serve the RPC connection meta for devframe \"{name}\" (id \"{id}\") at \"{base}\"; its DevframeHost does not implement mountConnectionMeta."
canonical_url: "https://devfra.me/errors/df8106"
---
# DF8106: Connection Meta Not Served

> The host cannot serve the RPC connection meta for devframe "\{name}" (id "\{id}") at "\{base}"; its DevframeHost does not implement mountConnectionMeta.

## Message

> The host cannot serve the RPC connection meta for devframe "`{name}`" (id "`{id}`") at "`{base}`"; its `DevframeHost` does not implement `mountConnectionMeta`.

## Cause

A mounted devframe's SPA fetches `./__connection.json` relative to its base to discover the RPC endpoint, and `ctx.install` serves that file by calling the host's `mountConnectionMeta(base)`. A devframe with servable `clientAssets` was installed on a `DevframeHost` that does not implement it, so the SPA connects only when it shares an origin with the hub UI (inheriting meta from the parent window); cross-origin, sandboxed, or directly-opened iframes stay disconnected.

## Fix

Implement `mountConnectionMeta(base)` on your `DevframeHost` to serve `__connection.json` at each mounted base:

```ts
const host: DevframeHost = {
  mountStatic(base, distDir) { /* serve files */ },
  mountConnectionMeta(base) {
    // serve `${base}__connection.json` → { backend: 'websocket', websocket: port }
  },
  resolveOrigin() { /* … */ },
  getStorageDir(scope) { /* … */ },
}
```

A static-snapshot host that bakes `__connection.json` into its served files can implement it as a no-op to acknowledge this intentionally.

## Source

- [`packages/hub/src/node/install-devframe.ts`](https://github.com/devframes/devframe/blob/main/packages/hub/src/node/install-devframe.ts): `ctx.install()` emits this when a devframe with servable `clientAssets` is installed on a host lacking `mountConnectionMeta`.


## Sitemap

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