Skip to content

Common errors

Diagnose and fix the most frequently reported plugin startup errors.

6 min read

RC-KEY-000 and RC-KEY-001 to RC-KEY-004

These codes appear in the server console on startup when no recording key is set, or the key cannot be read. [RC-KEY-000] means the key is missing. [RC-KEY-001] to [RC-KEY-004] mean it is malformed, incomplete or corrupt.

For a new install, open Downloads and enter a friendly server name. Copy the two-line config into plugins/ReplayCore/config.yml (or set REPLAYCORE_LICENSE_KEY and REPLAYCORE_SERVER_NAME). The key must start with rck_v1_ and sit on one line. Confirm server-name is present and non-blank. If you rotated the licence, every server must be updated with the new key.

If you recently purchased a subscription, allow a few minutes for the licence to activate. If the error persists, contact support@replaycore.com.

RC-KEY-401

The cloud rejected or revoked the key: the subscription has lapsed, or the key was rotated. Check Billing for subscription status, then open Downloads, enter a friendly server name, and copy the two-line config. After fixing the subscription or installing the new key, restart the server.

RC-LIMIT

Your plan covers a fixed number of server instances (Free 1, Starter 5, Pro 15, Enterprise unlimited). Starting a new distinct server beyond the allowance fails closed: ReplayCore logs one clear warning ([RC-LIMIT]) and records nothing, while the Minecraft server remains available.

To bring the extra server online, upgrade your plan or remove an unused server from the Servers page, then restart the affected server.

Staff seats are separate from instance limits: Starter includes 3 staff seats (then £2.00 per seat per month), Pro includes 5 (then £1.00 per seat per month) and Enterprise is unlimited. Seats are managed from Settings, then Team.

Recording is DISABLED. [RC-ID-409]

This line appears when two live Paper, Purpur, Folia, Leaf or Spigot processes share the same installation identity. That happens if you copy plugins/ReplayCore/ between servers, or clone a Pterodactyl or Docker volume that already contains ReplayCore's private files. Recording stays disabled on the colliding server. The Minecraft server stays up.

Stop the other copy, or on the new server delete the private files ReplayCore created in plugins/ReplayCore/ (keep the two-line config.yml with a distinct server-name), then restart so this install can register itself. Do not copy a populated plugin data folder onto a second live server.

[RC-CLAIM-GATE]

This is the current console code for an unclaimed connection. The startup and reminder line is identical each time:

ReplayCore is claim-blocked. This server connection is not approved (code ABC12345). Local capture stays on. Finished matches are held locally (not uploaded) until you approve it at Downloads: https://replaycore.com/en/dashboard/downloads. [RC-CLAIM-GATE]

/replaycore status always includes these two lines while unclaimed:

Approval code: ABC12345

Approve at Downloads: https://replaycore.com/en/dashboard/downloads

They sit under Connection: claim-blocked (waiting for owner approval). The held-match recovery line is omitted when the held count is zero. When one match is held:

1 finished match is held locally, waiting for owner approval (2 KiB). Open Downloads at https://replaycore.com/en/dashboard/downloads and approve the server (code ABC12345); ReplayCore will upload the held matches afterwards.

When three matches are held:

3 finished matches are held locally, waiting for owner approval (2 KiB). Open Downloads at https://replaycore.com/en/dashboard/downloads and approve the server (code ABC12345); ReplayCore will upload the held matches afterwards.

ABC12345 is a placeholder. The real short code is shown in that server's console and in /replaycore status. Copy the value from that install; do not use an example from documentation.

Unclaimed means an owner has not yet approved this server. The plugin can stay enabled, Test Connection can report an online check-in, and the Replays list can stay empty. Open the printed Downloads URL, match the short code, and approve the server. On ReplayCore cloud that URL is https://replaycore.com/en/dashboard/downloads. A self-hosted origin is kept and uses the same /en/dashboard/downloads path; a leading api. host is stripped. ReplayCore does not approve the connection automatically. Already-shipped plugins print a legacy alias for this same state; that older line is documented in the next section.

current console text for an unclaimed connection
ReplayCore is claim-blocked. This server connection is not approved (code ABC12345). Local capture stays on. Finished matches are held locally (not uploaded) until you approve it at Downloads: https://replaycore.com/en/dashboard/downloads. [RC-CLAIM-GATE]

[RC-CONFIG-CLAIM]

This is the legacy alias emitted by already-shipped plugins. It is the same unclaimed state as [RC-CLAIM-GATE]. The exact console line is:

A server installed with ReplayCoreLoader does not need this step: approving the installation in the Dashboard also connects its Dashboard configuration, so it never shows this code.

ReplayCore is recording with preserved local configuration while this existing server connection awaits owner approval in the Dashboard (code ABC12345). [RC-CONFIG-CLAIM]

ABC12345 is a placeholder. The real short code is shown in that server's console and in /replaycore status.

Open the printed Downloads URL, match the short code, and approve the server. On ReplayCore cloud that URL is https://replaycore.com/en/dashboard/downloads. A self-hosted origin is kept and uses the same /en/dashboard/downloads path. ReplayCore does not approve the connection automatically.

legacy console text for an unclaimed connection
ReplayCore is recording with preserved local configuration while this existing server connection awaits owner approval in the Dashboard (code ABC12345). [RC-CONFIG-CLAIM]

Uploads failing or stalling

If replays stop appearing in the panel, the server usually cannot reach the ReplayCore cloud. Verify that your host allows outbound HTTPS connections to api.replaycore.com on port 443, and check the status page for any ongoing incidents.

Recordings are written to local .replaycore archives first, so nothing is lost during an outage: uploads retry automatically and resume when connectivity returns.

[RC-LOADER-CLOUD-UNREACHABLE]

The Loader could not open an HTTPS connection to api.replaycore.com. The host name did not resolve, the connection was refused, or it timed out.

Allow outbound HTTPS (TCP port 443) to api.replaycore.com from the Minecraft server, including any firewall or panel egress rule, and check that the server can resolve DNS. The Loader retries by itself with back-off; a verified recorder already on disk keeps recording, and nothing is lost.

[RC-LOADER-TLS-UNTRUSTED]

Java on this server did not trust the HTTPS certificate presented for api.replaycore.com, so the Loader refused the connection. This is usually an old Java build with an outdated trust store, or a firewall or proxy that inspects HTTPS.

Update Java to a current build (on Minecraft 1.8.8 use a current Java 8 update), or exempt api.replaycore.com from HTTPS inspection. Do not disable certificate checks. The Loader retries by itself once the connection is trusted.

[RC-LOADER-CLOCK-SKEW]

ReplayCore signs every request with the current time, and the service accepts requests only within about two minutes of its own clock. This server's clock is further out than that.

Turn on automatic time synchronisation (NTP) on the host, for example timedatectl set-ntp true on Linux, or ask your host to fix the node clock. The Loader retries by itself; no restart is needed once the clock is right.

[RC-LOADER-DISK-FULL]

There is not enough free disk space in plugins/ReplayCore to download the recorder safely. The Loader writes nothing until there is room, so existing files and recordings are not damaged.

Free at least 100 MB on the disk that holds the server's plugins folder. The Loader retries by itself.

[RC-LOADER-FOLDER-READ-ONLY]

The Loader cannot write to plugins/ReplayCore: the folder belongs to another user, is read-only, or sits on a read-only mount.

Give the user that runs the Minecraft server write access to plugins/ReplayCore (for example chown -R that user and chmod u+rwX on the folder), then restart the server.

[RC-RECORDER-DISK-FULL]

The disk that holds plugins/ReplayCore is almost full. ReplayCore always leaves some space free (2 GB by default, set by recording.spool.minimum-free-gb) so the server, its worlds and its logs never run out of room because of recordings. While there is less than that, ReplayCore pauses writing new footage; recordings already on disk are kept and still upload.

Free disk space on that disk, for example by deleting old backups, logs or unused worlds, or ask your host for more storage. Recording resumes by itself within a few seconds; no restart is needed.

[RC-RECORDER-STORAGE-UNAVAILABLE]

The recorder could not open its first recording because it cannot write to plugins/ReplayCore: the disk is full, or the folder is read-only or owned by another user. Nothing is recorded until it can write, and nothing already on disk is changed.

Free disk space on the disk that holds the server, or give the user that runs the Minecraft server write access to plugins/ReplayCore. ReplayCore checks again every few seconds and starts recording by itself; no restart is needed.

[RC-LOADER-DEPENDENCY-CONFLICT]

plugins/ holds more than one PacketEvents JAR, for example an old packetevents-spigot file next to a newer one. The server can load only one of them, and which one wins is not predictable, so ReplayCore does not start recording on top of it.

Delete the older PacketEvents JAR (keep the newest release), then restart the server. Other plugins that use PacketEvents keep working with the newer file.

[RC-LOADER-DEPENDENCY-DISABLED]

PacketEvents is in plugins/ but the server disabled it during startup, usually because that PacketEvents release does not support this Minecraft version. Its own error is printed just above this line.

Replace the PacketEvents JAR with a current release for this Minecraft version, or delete it and let ReplayCore install the supported one, then restart the server.

[RC-LOADER-DUPLICATE-INSTALLATION]

Two ReplayCore plugins are loaded at once, for example an older ReplayCore JAR under another file name next to the Loader. Only one may record.

Keep one ReplayCore file in plugins/ (the Loader you downloaded from Downloads) and delete or move the other, then restart. Settings, recordings and the server's identity in plugins/ReplayCore are kept.

[RC-LOADER-DOWNLOAD-FAILED]

The Loader reached the ReplayCore cloud but the recorder download did not finish, was cut short or did not pass its signature check. Nothing that failed the check is ever started, and existing recordings are kept.

Allow outbound HTTPS (TCP port 443) to api.replaycore.com, including any proxy or firewall that limits large downloads. The Loader retries by itself.

[RC-LOADER-STAGE-FAILED]

The recorder was downloaded and verified, but it could not be saved to plugins/ReplayCore, usually because the disk is full or the folder is not writable.

Free at least 100 MB on the disk that holds plugins/ReplayCore and make sure the server user can write to it. ReplayCore tries again at the next restart.

[RC-LOADER-LAST-GOOD-NOT-PROMOTED]

The recorder is running, but its backup copy (used if a later update fails its start checks) could not be saved in plugins/ReplayCore. Recording is not affected, and ReplayCore tries again at the next start.

Make sure the server user can write to plugins/ReplayCore. If the disk is full, the console says so with [RC-LOADER-DISK-FULL] instead.

[RC-LOADER-SERVER-REMOVED]

This server was removed in the dashboard, so it no longer records or uploads. Recordings already on disk are kept.

To add it back, stop the server, delete the plugins/ReplayCore/.loader folder, and start the server again. It then appears in the dashboard as a new server waiting for approval.

[RC-LOADER-SETUP-CONFIG-FAILED]

The license-key line in plugins/ReplayCore/config.yml could not be read: the file is not valid YAML, or the value spans more than one line.

Correct the license-key line (one line, no line breaks), or remove it if you installed the Loader from Downloads, which links the server by itself, then restart the server.

ReplayCore is dependency-blocked. [RC-PACKETEVENTS-001]

The startup banner fills `{required}` with the PacketEvents version required for that Minecraft release:

PacketEvents {required}+ is required. Recording is idle. [RC-PACKETEVENTS-001]

/replaycore status then reports:

Recording: stopped (dependency-blocked)

Dependency: PacketEvents is missing [RC-PACKETEVENTS-001]

Recording is ENABLED is not printed in that state. Use 2.13.0+ through 26.2 or 2.14.0+ on 26.3. Paper and Spigot 1.8.8–1.12.2 do not need PacketEvents.

ReplayCore is dependency-blocked. [RC-PACKETEVENTS-003]

This appears when the installed PacketEvents version cannot record this Minecraft release. The startup banner shows the installed and required versions and gives a download URL.

/replaycore status reports: Recording: stopped (dependency-blocked). Dependency: PacketEvents is incompatible with this Minecraft version [RC-PACKETEVENTS-003].

Install the required version shown by the server and restart. Paper and Spigot 1.8.8–1.12.2 do not need PacketEvents.

ReplayCore is dependency-blocked. [RC-PACKETEVENTS-002]

This appears when PacketEvents is present but cannot be used. The startup banner gives the reason and download URL.

/replaycore status reports: Recording: stopped (dependency-blocked). Dependency: PacketEvents is present but not ready [RC-PACKETEVENTS-002].

Install the required version shown by the server and restart. Paper and Spigot 1.8.8–1.12.2 do not need PacketEvents.

ReplayCore: cloud storage is full

This line repeats on the Paper, Purpur, Folia or Spigot 1.8.8 console when the account's cloud storage is full. Free includes 1 GB; that is a hard cap. Recording has stopped. Delete replays in the dashboard or upgrade your plan, then run /replaycore forcestart. Deleting or upgrading alone does not resume capture until that command is run.

/replaycore forcestop pauses capture

/replaycore forcestop (permission replaycore.admin.forcestop) pauses recording on this server only. Capture stops on the next tick. The current archive is left intact; the command does not seal or upload it. There is no command that seals the current recording immediately. Restart the server to seal. Run /replaycore forcestart to resume capture, still subject to the cloud kill-switch and storage headroom.

Plugin not loading: ClassNotFoundException

A ClassNotFoundException or NoClassDefFoundError on start usually means the JAR is incomplete or was not downloaded fully: an interrupted download can leave a truncated file that fails to load.

Delete the ReplayCore JAR from your plugins directory, download a fresh copy from the Downloads page of your dashboard, drop it back into plugins/, and restart the server.

On modern 1.13+ servers, if the stack names a PacketEvents class, install the required official PacketEvents version in `plugins/` and restart. A missing PacketEvents JAR can cause this error. Use 2.13.0+ through 26.2 or 2.14.0+ on 26.3. Recording stays idle until PacketEvents is present. The missing-jar console code on that lane is [RC-PACKETEVENTS-001]. The Paper and Spigot 1.8.8–1.12.2 legacy lane does not need PacketEvents and never prints [RC-PACKETEVENTS-001].

If the error mentions a server API class rather than a ReplayCore class, check that your server is a supported platform and version (see the System requirements article); the recording engine is selected at runtime to match your server.