message-questionFAQ

Quick answers to common CrossWatch questions.

Setup

chevron-rightWhat is CrossWatch?hashtag

CrossWatch syncs watch state between media servers and trackers.

It runs locally and stores state on disk.

Start here: About CrossWatch.

chevron-rightI can’t remember my passwordhashtag

CrossWatch does not have a “forgot password” flow.

If you still have your config, disable UI auth:

  1. Open your config.json in a JSON-aware editor.

  2. Set:

"app_auth": {
  "enabled": false
}
  1. Restart the container.

  2. Log in, then re-enable auth and set a new password.

If you don’t care about keeping any settings/state, delete your config.json.

You will lose your configuration and local state.

chevron-rightUnable to login, but I don’t get a “password incorrect” messagehashtag

You probably switched between HTTP and HTTPS (or changed hostnames).

That can leave you with a stale auth cookie that never validates.

Delete the CrossWatch site cookies for that URL, then reload and log in again.

If you can’t find it, clear cookies for the whole site or try an incognito window.

chevron-rightDo I need Docker to run CrossWatch?hashtag

Yes. CrossWatch is currently distributed as Docker/container images only.

Use a persistent /config mount or you will lose state.

Setup steps: Docker setup.

chevron-rightWhat port does the UI use?hashtag

Default UI port is 8787.

If you change the port mapping, your URL changes too.

Setup reference: Docker setup.

chevron-rightWhere does CrossWatch store its data?hashtag

CrossWatch stores state as JSON files under your config folder.

In Docker, that is usually /config inside the container.

If you are looking for settings and tokens, start here: Configuration (config.json).

chevron-rightWhich services are supported?hashtag

Media servers: Plex, Jellyfin, Emby.

Trackers: Trakt, SIMKL, MDBList, AniList.

Full list: Providers.

First run

chevron-rightShould I start with syncing or scrobbling?hashtag

If you want dataset alignment (watchlists/ratings/history), start with syncing.

If you want plays as they happen, enable scrobbling after.

Decision guide: What do you need?.

chevron-rightWhy do I need a metadata provider (TMDb)?hashtag

Better IDs mean better matching.

TMDb reduces “missing peer” issues and bad links.

Setup location: Settings → Metadata. Related: Settings.

Syncing

chevron-rightWhat is a “pair”?hashtag

A pair is a source and a target with a mode and feature toggles.

Left side is Source. Right side is Target.

Deep dive: Configure Pairs.

chevron-rightWhat direction should I use: tracker → server or server → tracker?hashtag

Default is media server → tracker.

Trackers and servers play different roles. Pick a source of truth.

More context: Trackers vs. Media Servers.

chevron-rightIs two-way sync safe?hashtag

It can overwrite data. Treat it as an advanced mode.

Start one-way. Move to two-way only after multiple clean runs.

Safety defaults: Best practice.

chevron-rightCan I sync tracker history and ratings into my media server?hashtag

You can, but it is usually the wrong direction for history and ratings.

It can create drift and “ghost” history as libraries change.

Why it’s risky: Tracker to Media Server.

chevron-rightCan I sync between two media servers?hashtag

Possible, but fragile.

Only do it when libraries are near-identical and you can restore both servers.

Read this first: Media Server to Media Server.

Scrobbling (real-time)

chevron-rightWhat’s the difference between syncing and scrobbling?hashtag

Syncing is periodic dataset alignment (watchlist/history/ratings).

Scrobbling pushes playback progress in real time while you watch.

Overview: Scrobble.

chevron-rightShould I use Watcher or Webhooks?hashtag

Use Watcher.

Legacy webhooks are deprecated and not maintained.

How to pick: Webhook or Watcher.

chevron-rightWhy don’t media server webhooks work with a self-signed HTTPS certificate?hashtag

If your media server must POST webhook events to CrossWatch over https://..., it may reject self-signed certificates.

Webhook delivery will fail.

This affects:

  • Plex: webhook delivery rejects self-signed TLS certificates.

  • Emby/Jellyfin: webhook plugins commonly reject self-signed certs unless the CA is trusted.

Fix it by using a reverse proxy with a publicly trusted certificate (example: Let’s Encrypt).

Keep CrossWatch on HTTP behind the proxy.

Related: HTTPS/TLS and Reverse proxies.

chevron-rightDoes Watcher require Plex Pass or Emby Premiere?hashtag

No. Watcher scrobbles without Plex Pass or Emby Premiere.

Ratings are Plex-only and require an extra helper webhook.

Setup: Watcher.

chevron-rightWhich trackers can Watcher scrobble to?hashtag

Watcher targets Trakt, SIMKL, and MDBList.

You can choose one or multiple sinks.

Setup: Watcher.

Scheduling

chevron-rightHow do I run CrossWatch automatically?hashtag

Enable scheduling in Settings → Scheduling.

Start with a daily cadence. Move to sequential schedules only when needed.

Details: Scheduling.

Troubleshooting and tools

chevron-rightWhy didn’t an item sync?hashtag

It is usually an ID or matching problem.

Run a sync once, then use Analyzer to see missing peers and missing IDs.

Workflow: Analyzer.

chevron-rightHow do I block an item from syncing?hashtag

Use Editor → Current State to apply provider-level blocks.

Blocks survive rebuilds because they are stored as policy.

How it works: Editor.

chevron-rightI changed pair direction or enabled new features. What now?hashtag

Avoid constant pair changes.

When you do major changes, reset local state so planning recalculates cleanly.

Guidance: Best practice and Maintenance.

chevron-rightWhat does “Clear state” do?hashtag

It deletes the local orchestrator runtime state file (state.json).

Next run becomes a full rebuild.

Details: Maintenance.

chevron-rightCan I export my data to other services?hashtag

Yes. Exporter converts your runtime state into import-friendly CSVs.

It does not write back to providers.

How to use it: Exporter.

chevron-rightWhat are Snapshots?hashtag

Snapshots are a local rollback tool.

They capture one provider dataset so you can restore it later.

Details: Snapshots.

chevron-rightAre Snapshots a full backup?hashtag

No.

Snapshots do not include CrossWatch config, tokens, or credentials.

They also won’t preserve every provider-side detail (notes, list metadata, etc.).

chevron-rightWhere are Snapshots stored?hashtag

Snapshots are written under your /config volume:

/config/snapshots/YYYY-MM-DD/

chevron-rightWhy is my Plex/Emby/Jellyfin snapshot missing items?hashtag

Snapshots follow your library whitelists for that feature.

If you whitelist libraries for History/Ratings/Watchlist, the snapshot includes only those libraries.

Guide: Library Whitelisting.

chevron-rightWhat’s the difference between “Merge” and “Clear + restore”?hashtag

Merge is the safe default. It only adds missing items.

Clear + restore is destructive. It clears the provider dataset first, then restores.

Security and access

chevron-rightShould I expose CrossWatch to the public internet?hashtag

No.

Use a VPN or a reverse proxy with authentication.

Security guidance: Disclaimer.

chevron-rightHow do I enable HTTPS?hashtag

Switch the UI protocol to HTTPS, then restart CrossWatch.

You can use self-signed certs or mount custom certs.

Steps: HTTPS/TLS.

chevron-rightDo you support reverse proxy and TLS issues?hashtag

Reverse proxy setups and HTTPS/TLS configuration are not in the supported scope.

Issues around proxies, certificates, and the TLS manager get lower priority.

I can’t spend much time debugging these setups. Sorry.

Reference: HTTPS/TLS and Reverse proxies.

chevron-rightCan I install CrossWatch as a phone “app”?hashtag

Yes, via PWA install.

You need HTTPS with a trusted certificate (usually via reverse proxy).

Steps: Mobile devices.

Limits and gotchas

chevron-rightDoes CrossWatch use a database?hashtag

No. CrossWatch stores state as JSON files.

That is simpler, but it caps scale for very large libraries.

Details: About CrossWatch.

chevron-rightWhy is my first run slow?hashtag

Heavy backfills (full history/ratings) can take a long time.

Prefer incremental windows when possible. Ratings reads are not cached.

Details and guidance: About CrossWatch and Best practice.

chevron-rightWhy is my Trakt watchlist missing items?hashtag

Trakt Free has tight list limits (watchlist max 100).

SIMKL Free is more forgiving for large watchlists.

Quick comparison: Trakt vs SIMKL (Free plans).

chevron-rightAre there one-off scripts for provider exports or resets?hashtag

Yes. There are standalone scripts under /scripts/ inside the container.

If you want a rollback point, prefer the UI tool: Snapshots.

Use /scripts for headless workflows or when you need CLI control.

They are manual tools. Some actions can be destructive.

Read first: Standalone Scripts.

Last updated