Member State Reference

Look up state machine diagrams and status values for Federation members.

This reference provides an exhaustive list of member states, queue states, and related status enums used by Federated repositories.

Member State Machine

Federation members transition through lifecycle states while RTFS performs queue processing, full sync, and recovery operations.

stateDiagram-v2
    [*] --> PENDING_FS: New member or full sync required
    PENDING_FS --> FULL_SYNC_PREPARING: Full sync starts
    FULL_SYNC_PREPARING --> FULL_SYNC_RUNNING: File list prepared
    FULL_SYNC_RUNNING --> HEALTHY: Sync completed

    HEALTHY --> ERROR_GENERIC: Processing error
    HEALTHY --> ERROR_INACTIVE: Target unreachable
    HEALTHY --> ERROR_OUT_OF_SYNC: Missing purged events

    ERROR_GENERIC --> HEALTHY: Auto-heal or retry succeeded
    ERROR_INACTIVE --> HEALTHY: Connectivity restored
    ERROR_OUT_OF_SYNC --> PENDING_FS: Full sync required

    HEALTHY --> READ_ONLY: Receiver-only mode enabled
    READ_ONLY --> HEALTHY: Bi-directional sync restored

    classDef component fill:#41b375,stroke:#389b65,color:#fff
    class PENDING_FS,FULL_SYNC_PREPARING,FULL_SYNC_RUNNING,HEALTHY,READ_ONLY component
📘

Note

DELAYED and DISABLED are dashboard-only labels, not real member states, so they're intentionally left out of the state machine. DELAYED is HEALTHY with elevated lag (a metric-derived label, not a state transition). DISABLED reflects the member's enabled=false flag, which is orthogonal to status. A member can be disabled from any status. See Dashboard Status Mapping.

Member States

Federation members can be in the following states.

StatePriorityUser-visibleUI displayDescriptionAuto-Heals?User Action
HEALTHY1YesHealthyMember is fully synchronized with all other members.N/ANone required.
READ_ONLY0YesRead OnlyMember is configured as a receiver only. Events are received but not sent. Local uploads, deletions, copy to the repository, and move from the repository are blocked. Copy from the repository is allowed.NoExpected for receiving-only members. Revert to bidirectional mode if local writes are required. See Read-Only Behavior on Receiving-Only Members.
IMPORT_IN_PROGRESS2YesImport in ProgressAn import operation is running on this member.N/AWait for completion.
FULL_SYNC_RUNNING3YesFull Sync RunningFull synchronization is in progress.Yes (if stale)Wait for completion.
FULL_SYNC_PREPARING3No (internal)Maps to Full Sync RunningMember is preparing file lists for Full Sync.Yes (if stale)Wait for completion.
PENDING_FS4YesPending Full SyncMember is queued and waiting for full synchronization to begin.NoWait for automatic processing.
ERROR_GENERIC5YesErrorGeneral synchronization error.YesCheck logs if auto-healing does not recover.
ERROR_INACTIVE5No (internal)Maps to ErrorMember is inactive or unreachable.YesVerify network connectivity and member health.
ERROR_OUT_OF_SYNC6YesError (Out of Sync)Full sync failed, or queued events were deleted before synchronization could complete.YesA full sync may be required.
FOR_REMOVAL7No (internal)Maps to ErrorMember is marked for removal from Federation.NoN/A

Priority ordering: lower values indicate healthier states. Overall repository status uses the most severe state across members.

UI Dashboard States

The dashboard displays the following state keys.

State keyDisplay textPanel description
HEALTHYHealthyFederations in sync as expected
DELAYEDDelayedFederations with delayed members
ERRORErrorFederations with sync errors between members
PENDING_FSPending Full SyncFederations pending Full Sync operation
FULL_SYNC_RUNNINGFull Sync RunningFederations running Full Sync operation
DISABLEDDisabledMember is disabled
UNSUPPORTEDUnsupportedMember is running a version of Artifactory that does not support Federation Status
READONLYReceiving OnlyMember is configured as receiving-only (receiver mirror mode)
N/AN/AStatus is not available

Dashboard Status Mapping

The Federation dashboard displays simplified labels that map to RTFS member states.

Dashboard StatusUnderlying StatesDescription
HealthyHEALTHYAll metadata events are synchronizing normally.
DelayedHEALTHY (with high lag)Synchronization is slower than expected. This is based on lag metrics, not a distinct RTFS state.
ErrorERROR_GENERIC, ERROR_INACTIVE, ERROR_OUT_OF_SYNCOne or more synchronization errors are detected.
Pending Full SyncPENDING_FSMember is waiting for full sync to begin.
Full Sync RunningFULL_SYNC_PREPARING, FULL_SYNC_RUNNINGFull sync operation is in progress.
Disabledenabled=falseMember is disabled by an administrator.
UnsupportedN/AMember is running a version that does not support the Federation dashboard.
📘

Note

Status priorities determine the aggregated status shown in the Federation dashboard. When aggregating across members, the state with the highest severity is shown.

Member Queue States

The MemberQueueState enum defines the following queue states.

StateDescription
HEALTHYQueue is processing events normally.
PENDING_FSQueue is waiting for Full Sync before processing resumes.
ERRORQueue has encountered an error.
STOPPEDQueue has been manually stopped.
DISABLED_BY_SYSTEMQueue disabled by the system due to persistent errors.

Heartbeat Status

Heartbeat checks return the following statuses.

StatusProto valueDescription
OK0Heartbeat received successfully.
VERSION_CONFLICT1Member is running an incompatible version.
MIRROR_DISABLED2Mirror is disabled on the remote member.
MIRROR_NOT_FOUND3Federated repository not found on the remote member.

Full Sync Phase

Full Sync operations progress through the following phases.

PhaseDescription
PREPARE_LOCAL_LISTPrepare local file list.
POLL_REMOTE_LISTPoll remote member file list.
VISITCompare file lists and identify differences.
PROPAGATE_BATCHESTransfer artifact batches to resolve differences.

Binary Task State Machine

When RTFS propagates a CREATE or UPDATE event, binary content may not exist on the target. RTFS creates a binary task to transfer that content.

stateDiagram-v2
    [*] --> AVAILABLE: Event requires binary

    AVAILABLE --> IN_PROGRESS: Storage handler picks up task
    IN_PROGRESS --> COMPLETED: Binary transferred successfully
    IN_PROGRESS --> AVAILABLE: Transient failure, retry
    IN_PROGRESS --> EXHAUSTED_SUBMISSION: Max Artifactory retries exceeded
    IN_PROGRESS --> EXHAUSTED_STORAGE: Max storage retries exceeded
    IN_PROGRESS --> REJECTED: Binary rejected by target

    COMPLETED --> DELETED: Task cleanup
    DELETED --> [*]

    EXHAUSTED_SUBMISSION --> AVAILABLE: Manual replay triggered
    EXHAUSTED_STORAGE --> AVAILABLE: Manual replay triggered
    REJECTED --> [*]: Task cannot be retried

    classDef component fill:#41b375,stroke:#389b65,color:#fff
    classDef secondary fill:#ffffff,stroke:#41b375,color:#41b375
    class AVAILABLE,IN_PROGRESS,COMPLETED component
    class DELETED,EXHAUSTED_SUBMISSION,EXHAUSTED_STORAGE,REJECTED secondary

Binary Task Status Reference

The following table describes each binary task status.

StatusDescriptionNext Action
AVAILABLETask is queued and waiting for a storage handler.Automatic pickup by a handler.
IN_PROGRESSHandler is downloading from source or uploading to target.Automatic completion or retry.
COMPLETEDBinary transferred successfully.Task is removed from queue.
DELETEDTask is marked for deletion after successful completion.Automatic cleanup.
EXHAUSTED_SUBMISSIONMaximum retries when submitting to Artifactory are exceeded.Use the Replay Failed Binary Tasks API.
EXHAUSTED_STORAGEMaximum retries for storage operations are exceeded.Use the Replay Failed Binary Tasks API.
REJECTEDTarget Artifactory rejected the binary due to validation or policy checks.Review rejection details in logs.

Monitoring Binary Tasks

Use these metrics to monitor binary task health. In Prometheus or Grafana, query the scraped names (see Open Metrics Reference):

  • jfrtfs_binary_tasks_total_count_by_status_total: Counter for binary task counts by status. The logical name is jfrtfs_binary_tasks_total_count_by_status. Exposition typically adds the _total suffix.
  • jfrtfs_binary_tasks_handler_execution_duration_millis: Timer and histogram family. Series may include _count, _sum, _bucket, or related suffixes depending on export.

For example, a PromQL query against the counter metric:

jfrtfs_binary_tasks_total_count_by_status_total
👍

Tip

A high count of EXHAUSTED_SUBMISSION or EXHAUSTED_STORAGE tasks indicates failures that require investigation. Use the Replay Failed Binary Tasks API after addressing root cause.

Which Artifactory Version Includes Which RTFS Fixes

Self-hosted JPDs run Artifactory together with the Artifactory Federation Service (RTFS). Each Artifactory self-managed release bundles a specific RTFS build. Use the following table to see which RTFS version ships with common Artifactory release lines.

Artifactory self-managed release (examples)RTFS version bundled
7.117.x (for example, 7.117.14, 7.117.22)1.8.x
7.125.x (for example, 7.125.15)1.12.x
7.128.x7.131.x (for example, 7.128.0)1.13.0
7.133.x (for example, 7.133.13, 7.133.22)1.15.x
7.146.x and later2.0.x

Patch releases within the same Artifactory line can ship a newer RTFS build. For the exact RTFS version at your patch level, check Artifactory self-managed release notes or the Federation topics in this documentation set (for example, Federation over JFrog Bridge).

Check what you're running:

  1. Note your Artifactory version (Administration UI, installer, or Helm release).
  2. Use this reference to find the RTFS line bundled with your release, or confirm the exact version in release notes.
  3. If RTFS is enabled, confirm the service is healthy. See Verify RTFS is running.
📘

Note

Use your Artifactory release as the upgrade target. Newer Artifactory versions do not always include every RTFS fix from an older line. If you need a specific Federation fix, confirm with JFrog Support that your target Artifactory release includes it before you upgrade.

Binary sync when a Federation member is down

If one Federation member is offline, other members should still be able to fetch missing binaries from the rest of the Federation. That behavior is fixed in Artifactory 7.128.0 or later. Contact JFrog Support if you're on an earlier release and need this fix on your upgrade path.

This behavior applies only when RTFS is enabled. It does not apply to legacy Federation (RTFS disabled). If your environment still uses legacy Federation, migrate to RTFS and upgrade to a release that includes the fix.

Tip

Before a planned member outage, confirm RTFS is enabled and healthy. If binary sync lagged during a past outage even though artifacts existed on other members, discuss your Artifactory version and RTFS status with Support.

Related Topics


Did this page help you?