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
DELAYEDandDISABLEDare dashboard-only labels, not real member states, so they're intentionally left out of the state machine.DELAYEDisHEALTHYwith elevated lag (a metric-derived label, not a state transition).DISABLEDreflects the member'senabled=falseflag, which is orthogonal tostatus. A member can be disabled from any status. See Dashboard Status Mapping.
Member States
Federation members can be in the following states.
| State | Priority | User-visible | UI display | Description | Auto-Heals? | User Action |
|---|---|---|---|---|---|---|
| HEALTHY | 1 | Yes | Healthy | Member is fully synchronized with all other members. | N/A | None required. |
| READ_ONLY | 0 | Yes | Read Only | Member 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. | No | Expected for receiving-only members. Revert to bidirectional mode if local writes are required. See Read-Only Behavior on Receiving-Only Members. |
| IMPORT_IN_PROGRESS | 2 | Yes | Import in Progress | An import operation is running on this member. | N/A | Wait for completion. |
| FULL_SYNC_RUNNING | 3 | Yes | Full Sync Running | Full synchronization is in progress. | Yes (if stale) | Wait for completion. |
| FULL_SYNC_PREPARING | 3 | No (internal) | Maps to Full Sync Running | Member is preparing file lists for Full Sync. | Yes (if stale) | Wait for completion. |
| PENDING_FS | 4 | Yes | Pending Full Sync | Member is queued and waiting for full synchronization to begin. | No | Wait for automatic processing. |
| ERROR_GENERIC | 5 | Yes | Error | General synchronization error. | Yes | Check logs if auto-healing does not recover. |
| ERROR_INACTIVE | 5 | No (internal) | Maps to Error | Member is inactive or unreachable. | Yes | Verify network connectivity and member health. |
| ERROR_OUT_OF_SYNC | 6 | Yes | Error (Out of Sync) | Full sync failed, or queued events were deleted before synchronization could complete. | Yes | A full sync may be required. |
| FOR_REMOVAL | 7 | No (internal) | Maps to Error | Member is marked for removal from Federation. | No | N/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 key | Display text | Panel description |
|---|---|---|
| HEALTHY | Healthy | Federations in sync as expected |
| DELAYED | Delayed | Federations with delayed members |
| ERROR | Error | Federations with sync errors between members |
| PENDING_FS | Pending Full Sync | Federations pending Full Sync operation |
| FULL_SYNC_RUNNING | Full Sync Running | Federations running Full Sync operation |
| DISABLED | Disabled | Member is disabled |
| UNSUPPORTED | Unsupported | Member is running a version of Artifactory that does not support Federation Status |
| READONLY | Receiving Only | Member is configured as receiving-only (receiver mirror mode) |
| N/A | N/A | Status is not available |
Dashboard Status Mapping
The Federation dashboard displays simplified labels that map to RTFS member states.
| Dashboard Status | Underlying States | Description |
|---|---|---|
| Healthy | HEALTHY | All metadata events are synchronizing normally. |
| Delayed | HEALTHY (with high lag) | Synchronization is slower than expected. This is based on lag metrics, not a distinct RTFS state. |
| Error | ERROR_GENERIC, ERROR_INACTIVE, ERROR_OUT_OF_SYNC | One or more synchronization errors are detected. |
| Pending Full Sync | PENDING_FS | Member is waiting for full sync to begin. |
| Full Sync Running | FULL_SYNC_PREPARING, FULL_SYNC_RUNNING | Full sync operation is in progress. |
| Disabled | enabled=false | Member is disabled by an administrator. |
| Unsupported | N/A | Member 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.
| State | Description |
|---|---|
| HEALTHY | Queue is processing events normally. |
| PENDING_FS | Queue is waiting for Full Sync before processing resumes. |
| ERROR | Queue has encountered an error. |
| STOPPED | Queue has been manually stopped. |
| DISABLED_BY_SYSTEM | Queue disabled by the system due to persistent errors. |
Heartbeat Status
Heartbeat checks return the following statuses.
| Status | Proto value | Description |
|---|---|---|
| OK | 0 | Heartbeat received successfully. |
| VERSION_CONFLICT | 1 | Member is running an incompatible version. |
| MIRROR_DISABLED | 2 | Mirror is disabled on the remote member. |
| MIRROR_NOT_FOUND | 3 | Federated repository not found on the remote member. |
Full Sync Phase
Full Sync operations progress through the following phases.
| Phase | Description |
|---|---|
| PREPARE_LOCAL_LIST | Prepare local file list. |
| POLL_REMOTE_LIST | Poll remote member file list. |
| VISIT | Compare file lists and identify differences. |
| PROPAGATE_BATCHES | Transfer 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.
| Status | Description | Next Action |
|---|---|---|
| AVAILABLE | Task is queued and waiting for a storage handler. | Automatic pickup by a handler. |
| IN_PROGRESS | Handler is downloading from source or uploading to target. | Automatic completion or retry. |
| COMPLETED | Binary transferred successfully. | Task is removed from queue. |
| DELETED | Task is marked for deletion after successful completion. | Automatic cleanup. |
| EXHAUSTED_SUBMISSION | Maximum retries when submitting to Artifactory are exceeded. | Use the Replay Failed Binary Tasks API. |
| EXHAUSTED_STORAGE | Maximum retries for storage operations are exceeded. | Use the Replay Failed Binary Tasks API. |
| REJECTED | Target 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 isjfrtfs_binary_tasks_total_count_by_status. Exposition typically adds the_totalsuffix.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_totalTip
A high count of
EXHAUSTED_SUBMISSIONorEXHAUSTED_STORAGEtasks 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.x – 7.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 later | 2.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:
- Note your Artifactory version (Administration UI, installer, or Helm release).
- Use this reference to find the RTFS line bundled with your release, or confirm the exact version in release notes.
- 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
Updated about 7 hours ago
