---
title: "DF8108: Duplicate Renderer Module Type"
description: "A renderer module is already registered for dock type \"{type}\""
canonical_url: "https://devfra.me/errors/df8108"
---
# DF8108: Duplicate Renderer Module Type

> A renderer module is already registered for dock type "\{type}"

## Message

> A renderer module is already registered for dock type "`{type}`"

## Cause

`initHub({ renderers })` received two registrations carrying the same `type`. Each dock type resolves to exactly one renderer module in the hub's renderer manifest (the module served at `<base>__renderers/<type>.mjs`), so a second registration for the same type would be unreachable.

## Example

```ts
initHub({
  renderers: [
    jsonRenderUiRenderer(),
    { type: 'json-render', file: myOtherRenderer }, // ✗ duplicate type
  ],
})
```

## Fix

- Keep one registration per dock type: pick the implementation you want the manifest to serve.
- To override a manifest module for one specific client, register a renderer locally instead (`createDevframeClientRuntime({ renderers })`); local registrations take precedence.

## Source

- [`packages/hub/src/node/initiate.ts`](https://github.com/devframes/devframe/blob/main/packages/hub/src/node/initiate.ts): `resolveRendererRegistrations()` throws when a `type` repeats.


## Sitemap

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