---
title: "MGS1044: a spell override replaces nothing usable"
description: Fires when a magus.yaml spell override points at a directory holding no spell, at a spell carrying another name than the embedded one it replaces, or at an embedded spell this magus does not ship.
tags: [MGS1044, magusfile, spells, imports, override, replace, magus.yaml]
---

# MGS1044: a spell override replaces nothing usable

A `path:` entry in `magus.yaml` redirects a spell import to a workspace directory, and
that directory cannot stand in for the spell:

```text
[error] [MGS1044] magus.yaml spells.magus/spell/go: path spells/go holds no spell.buzz,
so there is no spell to replace it with
```

The same code covers an embedded spell's replacement that declares another name
(`holds the spell "mygo", not "go"`), and an override of `magus/spell/<name>` for a name
this magus does not ship.

## Why

An override is declared, like Go's `replace`, so the import string never changes and
the one line in `magus.yaml` is what a reviewer sees. That line has to point at a real
replacement. A copy of an embedded spell takes over the embedded spell's registry entry,
so every use of the name runs the copy; a copy under another name would leave the name
bound to nothing it declares.

## What to do

Point `path` at the directory holding the copy's `spell.buzz`, relative to `magus.yaml`.
For an embedded spell, keep `mgs_getName()` returning the embedded spell's name, and
check the name exists with `magus describe spells`. See
[Remote spells](../../remote-spells.md#overrides).
