Introduction
Artifactory utilizes Dynamic License Expiration, a feature that automatically fetches the entitlements upon renewal. Entitlements are a bundle containing your subscription services, validity dates, and license metadata.
This process is managed by the JFConnect microservice within Artifactory, which communicates with the central JFrog Entitlements Server (JES) at jes.jfrog.io.
Thanks to this, manual license key updates are not required for standard renewals. You only need to manually update your keys if you change your subscription tier (e.g., upgrading from Enterprise to Enterprise Plus). - as outlined in the documentation above.
Connectivity Requirements
Why Is My Expiry Date Not Updating?
Sometimes, the Artifactory UI continues to display the old expiry date after renewal.
This typically occurs when a cached version of the old entitlements exists in the database, and JFConnect is currently unable to reach the JES endpoint to fetch the new entitlements.
Resolution
Case A: JFrog Platform Connected To The Internet
The most common cause is a network block preventing JFConnect from reaching the JES endpoint.
1. Check Logs: Examine the jfconnect-service.log for DNS or connection timeout errors, or TLS errors:
[jfcon] [ERROR] [jes_authenticating_round_tripp] Failed refreshing JES authentication token:
Post "https://jes.jfrog.io/api/v1/token/refresh": dial tcp: lookup jes.jfrog.io: no such host
# or:
Synced action 'register' - failed executing: Post "https://jes.jfrog.io/api/v1/register": net/http: TLS handshake timeout
2. Verify Network: Ensure firewalls allow outbound traffic to jes.jfrog.io port 443.
If your organization utilizes a proxy, please ensure that the proxy settings are correctly configured within the JFrog Platform. It is important to note that the JFConnect service will utilize the proxy only if it is set as the platform-default.
Case B: JFrog Platform in an Air-gapped Environment
If your environment is restricted or cannot allow outbound traffic to JES, you must manually refresh the entitlement data.
1. Follow our Air-Gap Documentation: Configure JFrog Platform in an Air-gapped Environment.
2. Note on Timing:
For both new subscriptions and renewals, the entitlements file becomes available 14 days before the contract start date. You can download and apply the file ahead of time to prevent any downtime in your air-gapped environment.
Conclusion
If the expiry date is stuck, the primary suspect is the communication link between the local JFConnect micro service and JFrog Entitlements Server (JES). By either restoring the network connection (Option A) or manually injecting the entitlements into Air-Gapped environments (Option B), the UI will refresh to show the correct subscription dates.
Need further help? Contact JFrog Support.