---
title: "MGS3046: a workspace load file held in a shared checkout"
description: Fires when a job's write paths cover a magusfile, magus.yaml or spell source while another live job is working in the same checkout. The fork is refused; give the job its own worktree, or leave the file out of its write paths.
tags: [MGS3046, jobs, leases, write paths, checkout, worktree, fork, agents, magusfile, magus.yaml]
---

# MGS3046: a workspace load file held in a shared checkout

`magus job fork`, `magus job apply` and `magus\job.put` refused a job because
its write paths cover a file the workspace loads, and another live job is
working in this checkout:

```text
[MGS3046] job: wave/slots declares "magusfile.buzz", which covers magusfile.buzz,
  and wave/docs is live in this checkout: give wave/slots its own worktree and
  fork it there, or leave magusfile.buzz out of its write paths
```

Nothing was written to the job store.

## Why

A magusfile, `magus.yaml` or spell source that is half-saved stops the whole
workspace loading. Every job in the checkout loses `magus run`, including the
checks it is graded on, until the edit lands. The file has one owner, so the
only way both jobs can be right is for one of them to work somewhere else.

## What is not refused

- Write paths that cover no load file.
- A checkout no other live job is working in.

## What to do

Fork the job into its own worktree by naming a `checkout`, an absolute
directory outside the workspace, or drop the load file from its write paths.
`magus describe file <path>` names what else a write path covers.

## See also

- [MGS3036](MGS3036.md): a project's configuration held whole.
- [Leases](../../../guides/integrations/agents/leases.md): checkouts and write paths.
