ARTIFACTORY: Troubleshooting "Error propagating event: uiDeploy: Read timed out" Error in Artifactory
Introduction
When encountering the "Error propagating event: uiDeploy: Read timed out" error message in Artifactory, it indicates a node propagation issue related to the UI deploy event.
An example entry from the $JFROG_HOME/artifactory/var/log/artifactory-service.log file is shown below:
2023-09-11T05:28:45.640Z [jfrt ] [ERROR] [d669e76d6044cea7] [p.HaPropagationServiceImpl:416] [044cea7|art-exec-372] - Error propagating event: uiDeploy: Read timed out
Issue Description
The error message "Error propagating event: uiDeploy: Read timed out" suggests that there was a timeout while attempting to propagate a UI deploy event within Artifactory's high availability (HA) environment. This can lead to synchronization problems between nodes, affecting the reliability of your Artifactory setup.
Resolution
To address this issue and reduce similar timeouts, follow the steps outlined below:
Step 1: Locate and Edit the Configuration File
- Open the file “$JFROG_HOME/artifactory/var/etc/artifactory/artifactory.system.properties”. This file contains Artifactory's system properties.
Step 2: Adjust the Timeout Property
- Locate the property named “artifactory.ha.propagation.http.socketTimeoutMs”. If it is missing, you can add it at the bottom of the file:
- You can raise its value, such as setting it to `60000`, effectively configuring the socket timeout to 60,000 milliseconds (equivalent to 60 seconds), whereas the default setting is 15,000 milliseconds:
artifactory.ha.propagation.http.socketTimeoutMs=60000
Step 3: Restart Artifactory
- To apply the configuration change, you must restart Artifactory
Best Practices
While addressing this specific error, it's essential to consider best practices for deploying large artifacts in Artifactory:
- Avoid relying solely on the UI for large deployments: this practice is not recommended and is likely to cause timeout issues. Instead, consider using alternative methods.
- Use the Artifactory REST API: Utilize the Artifactory REST API for deploying large artifacts. This approach provides programmatic control and can be automated for efficiency.
- Consider using the JFrog CLI: JFrog CLI is a command-line tool specifically designed for interacting with Artifactory. It offers powerful features for uploading, downloading, and managing artifacts, making it a suitable choice for large deployments.