---
title: "DF0021: RPC Function Already Registered"
description: "RPC function \"{name}\" is already registered"
canonical_url: "https://devfra.me/errors/df0021"
---
# DF0021: RPC Function Already Registered

> RPC function "\{name}" is already registered

## Message

> RPC function "`{name}`" is already registered

## Cause

`ctx.rpc.register()` was called twice with the same `name`. RPC names must be unique within a devtool.

## Fix

Either give the second registration a distinct name, or pass `force: true` to overwrite the previous one (e.g. during HMR-driven re-registration).

```ts
ctx.rpc.register(defineRpcFunction({
  name: 'my-plugin:fn',
  handler: () => 1
}), true /* force */)
```

## Source

- [`packages/devframe/src/rpc/collector.ts`](https://github.com/devframes/devframe/blob/main/packages/devframe/src/rpc/collector.ts): `RpcFunctionsCollectorBase.register()` throws `DF0021` when an RPC name is already registered and `force` is not set.


## Sitemap

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