---
title: "MGS3016: workspace failed to load"
description: The server refused a call because the workspace it targets failed to load, usually a magusfile that does not compile. The server holds the failure until a workspace source changes.
tags: [MGS3016, server, workspace, magusfile, console, mcp, FAILED_PRECONDITION]
---

# MGS3016: workspace failed to load

The server holds this workspace in state `FAILED`: evaluating its magusfiles
stopped on an error. Every call that needs the loaded workspace answers
`FAILED_PRECONDITION` with this code until the cause is fixed.

```text
[MGS3016] workspace /repo failed to load: magusfile.buzz:12:3 [BZZ1008] redundant import alias
```

The error carries the diagnostic the load stopped on. Over Connect and HTTP it is a
`google.rpc.PreconditionFailure` violation whose `type` is that code (`BZZ1008`
above) and whose `subject` is `file:line:column`. A `google.rpc.Help` detail links
this page and the cause's page. The console reads the same `google.rpc.Status`
from the workspace's `error` field in `StatusService`.

## Why

Retrying cannot help. The server would evaluate the same bytes and stop at the same
place, so it does not reload a failed workspace per request. It watches the
workspace instead and loads it again when a `.buzz` file or `magus.yaml` changes.
While that load runs, calls answer [MGS3017](MGS3017.md).

The server keeps serving while the workspace is failed: the console, `/mcp`, the
status stream and the health routes stay up and report the failure, rather than
leaving a client with nothing to connect to.

## Resolution

Fix the diagnostic the error names, following its own page. Saving the file
triggers the reload; nothing needs restarting. `magus ls` in the workspace shows
the same error locally.

## What this is NOT

- **Not a workspace the server does not serve.** That is a root outside
  `server.workspaces`, refused before any load is tried.
- **Not a load in progress.** That is [MGS3017](MGS3017.md), which resolves on its own.
