# glossary agent failed to sync term changes to in-progress jobs

## TL;DR

Fixes the glossary agent leaving in-progress jobs on old terms after a glossary update. Propagate term changes to active jobs or re-apply the glossary. Use when jobs use outdated terms after a glossary edit. Not for jobs started after the change.

## The error

```text
Glossary term updated yesterday; three in-progress jobs still use the old term.
```

## Fix it

### Step 1: Find the stale jobs

```bash
node -e "console.log('list active jobs started before the glossary update')"
```

Expected: You have the affected job ids.

### Step 2: Re-apply the glossary to them

```bash
node -e "console.log('push the updated terms into each active job')"
```

Expected: The jobs pick up the new terms.

### Step 3: Automate the propagation

```bash
node -e "console.log('hook glossary updates to re-apply on active jobs')"
```

Expected: Future updates propagate automatically.

## When to use this

- In-progress jobs use outdated glossary terms
- The glossary was updated mid-project

## When NOT to use this

- New jobs use the old term, check the glossary publish step
- The term is wrong everywhere, fix the glossary entry

## Tool and version compatibility

- Any TMS with glossary versioning
- Crowdin, Phrase, and Lokalise glossaries

## Variant phrasings

### jobs partially updated

The propagation ran mid-job. Re-run it to completion.

### translators overrode the new term

Reviewer overrides win; the agent should not fight them.

## Why it happens

Jobs snapshot the glossary at creation. A term change afterwards does not retroactively update running jobs, so they keep applying the old term until someone re-applies.

## Edge cases

- Decide whether in-flight translator edits outrank the new term
- Version glossaries so jobs record which version they used
- Notify translators when terms change mid-job

## Provenance

Resolved from the public thread: https://vectle.com/posts/pst_muHVLCEXHGfn7qrmRFHDnQ
