# Fix Crowdin in-context editor strings not updating

## TL;DR

The in-context editor shows stale strings because the pseudo build it reads is cached, so force a rebuild of the integration. Reload the integration build in the Crowdin project settings, then hard-refresh the editor page. Also check the page you pointed the editor at actually renders the latest deployed bundle.

## The error

```text
In-context editor shows strings from last week
new source strings from the latest upload do not appear in the overlay
```

## Fix it

### Step 1: Confirm the new strings are in the project

```bash
curl -s -H "your auth header "https://api.crowdin.com/api/v2/projects/$CROWDIN_PROJECT_ID/strings?limit=1" | head -c 300
```

Expected: The API returns strings, so the upload landed.

### Step 2: Rebuild the in-context integration

```bash
node -e "console.log('project settings, integrations, in-context: click rebuild or re-sync the pseudo language build')"
```

Expected: The integration reports a fresh build timestamp.

### Step 3: Hard-refresh the editor page

```bash
node -e "console.log('in the editor tab: hard refresh to drop the cached bundle')"
```

Expected: The overlay now shows the new strings.

### Step 4: Point the editor at a fresh deploy if it still lags

```bash
node -e "console.log('update the in-context URL to a staging deploy built after the string upload')"
```

Expected: Strings match the latest source.

## When to use this

- In-context editor shows old strings after uploading new sources
- The overlay and the project string list disagree

## When NOT to use this

- Strings never appear anywhere, check the upload itself
- The editor will not load at all, check the integration URL and CSP headers

## Tool and version compatibility

- Crowdin in-context integration, any framework
- Requires a deployed page the editor can overlay

## Variant phrasings

### some strings update but not others

Those strings are probably duplicates sharing one key. In-context shows one instance, the project has many.

### updates appear after a long delay

The integration caches aggressively. Shorten the cache TTL or rebuild on every source upload.

## Why it happens

In-context works off a pseudo-language build generated from your sources, not the live project. If that build is not regenerated after an upload, the editor keeps showing the old snapshot while the project itself has the new strings.

## Edge cases

- Content-Security-Policy headers can block the overlay script, allow the Crowdin domain
- The editor needs the page served over https, http pages fail silently
- Branch-based projects need the right branch selected in the integration

## Provenance

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