---
title: "MGS1046: a MAGUS_* environment variable that is provably wrong"
description: Fires when the environment carries a MAGUS_* variable magus retired, or one a typo away from a variable magus reads. Every command stops before doing any work, and the magus shell guard denies, naming each variable with what to do instead.
tags: [MGS1046, environment, env var, config, retired, typo, guard]
---

# MGS1046: a MAGUS_* environment variable that is provably wrong

The environment carries a `MAGUS_*` variable that magus retired, or that misspells one
it reads. Every command, `magus version` included, stops before doing any work:

```text
magus: [MGS1046] MAGUS_CACHE_DIRR is set, but magus does not read it; did you mean MAGUS_CACHE_DIR?
MAGUS_NO_WAIT was removed in v0.5.0; delete it; magus never waits on another invocation, a held lock or budget refuses at once with exit 75
  see: https://eli.gladman.cc/magus/reference/codes/magusfile/MGS1046/
```

Each variable gets its own line. A variable set to the empty string counts as unset.

`magus shell`, the command an agent host runs as its guard hook, answers with a deny
carrying the same text instead of exiting, because a hook that exits without a verdict
is read as allow. `magus buzz` carries on, so the hook glue it runs reaches that deny.

## Why

A variable exported for magus and then not read looks exactly like one that applied.
When `MAGUS_NO_WAIT` was removed, scripts and agents kept setting it: 462 commands in
one day exported a value no magus honored, and nothing said so.

Only the two cases magus can prove are refused. A `MAGUS_*` name that is neither
retired nor close to one magus reads may belong to a newer magus or to a repository's
own tooling, so it runs; `magus doctor` lists it under `environment-variables` as
advice.

## What to do

The tail of each line says which case it is:

- **`was renamed to ...`** Rename the variable; the value means the same thing.
- **`was removed in ...`** Delete it. The line says what replaced the behavior, if
  anything did.
- **`did you mean ...?`** Fix the spelling.

[docs/reference/config.md](../../config.md) lists every variable that has a `magus.yaml`
key, and `man magus` lists all of them under ENVIRONMENT.

## See also

- [MGS1040](MGS1040.md): the same stop for a `magus.yaml` key this magus does not know.
