# Media Server to Media Server

Media server to media server syncing is possible. It is also the fastest way to corrupt state.

{% hint style="warning" %}
Bidirectional sync between media servers carries the highest risk.

Both sides can introduce conflicts, duplicates, unintended overwrites, and propagated deletions.

For most users, one-way remains the safer choice.
{% endhint %}

### When it is OK

Consider this only when:

* You understand the risks.
* Both servers have near-identical libraries.
* You have tested backup and restore on both servers.

{% hint style="warning" %}
If you can’t restore, don’t sync.
{% endhint %}

### Why it is fragile

#### Backup and restore is required

* Back up each server database and app data before syncing.
* Test restore before enabling two-way.
* Expect overwrites when IDs shift.
  * History can be lost.
  * Ratings can be lost.
  * Watchlists can be lost.

#### "Same library" is rarely the same library

Libraries drift. Small differences compound over time.

Common causes:

* Different folder layout.
* Different editions or cuts.
* Partial seasons.
* Extras and specials.
* 4K vs 1080p duplicates.

#### ID mismatches cause silent damage

Providers use different identifiers:

* Plex GUIDs
* Jellyfin/Emby internal IDs
* TMDb/TVDB/IMDb remaps

Small mismatches can write to the wrong item. You often notice weeks later.

#### Mistakes cascade

One bad match on Server A copies to Server B. A later rematch makes B look wrong. Then you "fix" B and A flips back.

That loop is hard to unwind.

### If you still do it

Do these before enabling two-way:

* Start one-way and validate results.
* Sync one library at a time.
* Prefer history via scrobble, not bulk history sync.
* Watch logs for rematches and unexpected deletes.

### Related topics

* [Best practices](/getting-started/best-practices.md) - safer defaults.
* [Trackers vs. Media Servers](/related-information/trackers-vs.-media-servers.md) - pick a source of truth.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://wiki.crosswatch.app/related-information/media-server-to-media-server.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
