---
outline: deep
---

# DF8400: Command Already Registered

## Message

> Command "`{id}`" is already registered

## Cause

`ctx.commands.register(command)` was called with an `id` that another command already owns. Command ids are unique per hub context.

## Fix

- Pick a different command id (namespace under your tool: `my-tool:reload`, `my-tool:open-settings`, …).
- To replace, call `ctx.commands.unregister(id)` first.

## Source

- [`packages/hub/src/node/host-commands.ts`](https://github.com/devframes/devframe/blob/main/packages/hub/src/node/host-commands.ts) — `DevframeCommandsHost.register()` throws when `commands.has(command.id)`.
