Artifact distribution errors

Document ID : KB000108862
Last Modified Date : 19/10/2018
Show Technical Document Details
Issue:
A deployment job can experience artifact distribution errors for one of several reasons. This article highlights some of the more common causes. 
Environment:
CA Release Automation v5.x - v6.x
Cause:
There are different root causes for having artifact distribution problems. Here are links the the most common causes. Each article includes a solution unique to its root cause. 
  1. Failed to download artifact to retrieval agent
  2. ​Failed to distribute artifact to execution server
  3. Failed to download the artifact. The requested resource is not available.
  4. Cannot deploy applications as the artifact cannot be sent to the execution server.
  5. Intermittent deployment halted, distribution of artifacts fails
  6. Unable to transfer artifacts larger than 1 Gb
  7. Deploying folder as artifact fails with 'Error storing the artifact...'
  8. Retrieval action failed - Source file does not exist
  9. Artifact distribution to execution server keeps showing run button
  10. Failed to download artifact to retrieval agent Artifact download task was cancelled, agent does not respond
  11. Failed to distribute artifact to agent from execution server 
Resolution:
Apply the solution that matches your root cause. If you find that the root cause is not covered in any of the above technical articles then please open an issue with support and provide the following information after the problem occurs:
  • A screenshot showing the release details for the release with artifact distribution errors. This should include:
    • The URL. This is helpful because this will confirm the RELEASE ID that we need to troubleshoot.
    • The properties of the release (on the right side). This is helpful because we can see information related to start time, etc..
    • The PRE-DEPLOY stage page. This is helpful because it will show which artifact package was applied as well as any errors associated with the artifact distribution. It is possible that you might need to take multiple screenshots to capture all of this information (depending on screen resolution, etc..). That is why we explain which information we're after and how it is helpful.  
  • A screenshot of the artifact package.
    • To get this we recommend copying the package name from the release details -> pre-deploy stage page. Then click on the artifact package link which brings you to the artifact packages page but doesn't automatically bring you to the artifact package in question. Use the filter in the artifact package view to paste the name of the artifact package and then select the artifact package and take a screenshot off all of the artifacts in the package. You usually do not have to take a screenshot of the details for each artifact in the artifact package. But the more information the better. It is better to have the information and not need it then to need it and not have it. 
  • A copy of the logs directory from the following servers:
    • The management server.
    • The execution server that the retrieval agent reports to.
    • The execution server that the agents report to.
    • The retrieval agent. See additional information (below) for how to identify which artifact retrieval agents were used for the release id with the artifact distribution error.
    • The agents being deployed to. There are two phases of artifact distribution. See below for the phases and when these agent logs are necessary.
      • Distribute to execution server. The agent logs are usually not necessary if the problem is during this phase of artifact distribution.
      • Distribute to agents. The agent logs are necessary when the problem is during this phase of artifact distribution.
Additional Information:
WHICH ARTIFACT RETRIEVAL AGENT DID MY JOB USE?
If your artifacts are configured to use an artifact retrieval group then there is no way to see (in the ROC/ASAP UI) which retrieval agent from that group was used for that job. The only exception is if the error during artifact distribution tells you which artifact retrieval agent was used. It sometimes does, but not always. It depends on the error and whether or not the problem was related to the retrieval agent. But the logs from the retrieval agent are almost always needed for artifact distribution problems. You can identify which artifact retrieval agent is being used by a job by looking at the nolio_dm_all.log* files on the management server. If the logs have not been overwritten then there should be the following messages:
2017-02-10 20:24:21,033 [StageExecutorTask-8] INFO  (com.nolio.releasecenter.services.release.execution.engine.ArtifactPackageDistributionServiceImpl:96) - Downloading artifacts to retrieval agents for [Artifact_Package_1] for deployment [Deploy1Artifact-2 ID.3]. 

2017-02-10 20:24:21,033 [StageExecutorTask-8] INFO  (com.nolio.releasecenter.services.release.execution.engine.ArtifactsEngineImpl:313) - collecting data to download [1] artifacts to retrieval agents for release id [3]

2017-02-10 20:24:21,035 [StageExecutorTask-8] INFO  (com.nolio.releasecenter.services.release.execution.engine.ArtifactsEngineImpl:467) - Artifact [ Artifact_Def_1.Artifact_Type_1'ver. Artifact_Ver_1'] Will be retrieved by the agent [ra552-nag1]


In the first message you can see the job name and release id. But another piece of important information is the thread (StageExecutorTask-8) as it will likely be the same thread that is used in the second and third message. The third message is showing which artifact retrieval agent (in this case: ra552-nag1) is being used to retrieve the artifact (in this case: Artifact_Ver_1).