---
title: "DF0077: In-Page Channel Function Not Registered"
description: "An in-page channel call names a function that is not registered on its endpoint."
canonical_url: "https://devfra.me/errors/df0077"
---
# DF0077: In-Page Channel Function Not Registered

> An in-page channel call names a function that is not registered on its endpoint.

## Message

> In-page channel function "" is not registered on this endpoint.

## Cause

The two endpoints disagree about their channel contract. The calling endpoint names a function that the receiving endpoint did not register in its `functions` option. This usually means the page script and panel use different protocol declarations or incompatible devframe versions.

## Example

```ts
import { connectPanelChannel, createPageScriptChannel } from 'devframe/in-page-channel'

interface PanelProtocol {
  functions: {
    pageScript: {
      inspect: () => void
    }
  }
}

const pageScript = createPageScriptChannel({
  name: 'devframes:example',
  functions: {},
})
pageScript.addPanelPort(port1)

const panel = connectPanelChannel<PanelProtocol>({
  name: 'devframes:example',
  functions: {},
})

await panel.call('inspect') // ✗ The page script did not register `inspect`.
```

## Fix

Import one shared protocol declaration into both endpoints, then register every function from the receiving side of that protocol in its `functions` option.

## Source

- [`packages/devframe/src/in-page-channel/internal.ts`](https://github.com/devframes/devframe/blob/main/packages/devframe/src/in-page-channel/internal.ts): `createLocalFunctionRegistry().resolve()` throws this when no local function definition matches the call name.


## Sitemap

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