Discussion

Deployment Manager FAQ - Continuous Integration and merging branches

For a more complete list of questions and troubleshooting tips for Deployment Manager, please reference : Deployment Manager FAQ and Troubleshooting tips.

There is a more detailed workflow for how to work with branches and Deployment Manager in the article, Best practices for using branches with Deployment Manager. Please read through that first to make sure that you are following the recommended setup.

General questions around working with branches

  1. What is the correct way to make changes to Non-Rule-Resolved (NRR) rules?
    • Ans: At this point, NRR rules cannot be updated in branches. They need to be updated directly on the Dev (or remote dev) system). This will mean temporarily unlocking rulesets as needed and then re-locking, consistent with the versioning practices and development workflow
  2. If my target application is locked, how can I developer using branches?
  3. How can I prevent my development branches from being migrated to higher environments?

Troubleshooting the Merge Wizard

  1. The Merge Wizard is not showing the Applications pipeline section
    • Ans: Make sure your application is built on the PegaDevOpsFoundation Application
    • Make sure that the RMURL Dynamic System Setting is populated
  2. When launching the Merge Wizard, I see an error "There are no pipelines defined on the orchestration system that are available to this application."
    • This error suggests that the merge wizard can successfully connect to the deployment manager system, but there are no pipelines present which also exist in your current application stack.
  3. When launching the Merge Wizard, I get an unhandled exception error
    • These errors come in a variety of forms:
      • java.net.MalformedURLException: unknown protocol: xxxx
      • java.lang.RuntimeException: javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection?
      • java.lang.RuntimeException: org.apache.http.conn.ConnectTimeoutException: Connect to [XX.XXX.XX.XXX] failed: connect timed out.
      • the server responded with an HTTP 404 code, indicating that the resource does not exist
      • The RMURL dynamic system setting had a value but is missing /PRRestService at the end.
    • Ans: These errors all suggest that there is a problem with your RMUrl Configuration. RMUrl should…
      • end in PRRestService
      • start with a valid protocol; https if the target is SSL enabled otherwise http
      • refer to a valid system that is available and accessible
  4. When launching the Merge Wizard, I get an authorization error
    • “The server responded with an HTTP 401 code, indicating an authorization problem" OR
    • "The body of the service's response, which is set up for mapping in the Connector rule, was empty for this service call.”
    • Ans: This error suggests that the DMReleaseAdmin Authentication Profile is invalid. Ensure that the username and password is correct and try logging into the Deployment Manager system with the same set of credentials.
  5. When submitting a merge, I get an error
    • “Branch could not be merged. The selected pipeline corresponds to an application which does not contain some or all of the rulesets in this branch: MyBranch.”
    • Ans: Ensure that you have chosen the correct pipeline.
    • Check that all the rulesets present in the branch are associated with the pipeline’s application. The error message indicates which rulesets are causing issues.
    • Delete any invalid rulesets, even if they are empty.

Deployment Manager Merge criteria (Continuous Integration) troubleshooting

  1. Branch review task is failing
    • Ans: The branch review task requires that the branch has been reviewed, and the review has been closed before it can proceed.
  2. Branch gets an invalid password error when trying to merge
    • <AppName:01-01-01 [BranchName]>: You have entered an incorrect password
    • Ans: There are two causes for this error.
      • The branch is locked, support for locked branches has been added in version 4.4
      • The ruleset version's password on the development environment does not match what is configured in the pipeline's merge policy (if Highest existing ruleset is the selected option).
  3. CI Tasks fail, indicating that a branch could not be found
    • Ans: In rare cases this can be caused by a missing Rule-RuleSet-Branch instance.
    • The easiest solution is to add the branch to an application on the SOR from the branch explorer, and then click the branch to launch the branch landing page.
  4. When I merge I get "Insufficient privilege" error in the Merge requests mode in the Deployment Manager orchestrator
    • Ans: First check to see if there is a configuration problem. Run the diagnostics, Actions->Diagnose pipeline on the Orchestrator to see if this is a problem with the DMAppAdmin operator/authentication profile
    • Please check the Access group of the operator trying to merge the branch has the SysAdm4 role or roles with similar privileges.
  5. I have a stuck merge request which is blocking other merges. How do I get that merge request unstuck or resolve so that the other merges can go through?
    • ​Ans: You can go ahead and try to manually resolve this work object associated with the branch merge for that pipeline. The fix is basically to find the Pipeline-CI workobject associated with the application pipeline in question, and manually resolve reject it. For example, lets say there is a stuck merge request for
    • For the pipeline involved, let’s say in my case here, UPlusCSDev
    • In Designer Studio (for the Deployment Manager application), you need to find for this example, “Pega-Pipeline-CI-UPlus_CSUPlusCSDev” and open up the instance list
    • From there open up the work object and manually resolve them. To do that change the stage to “Merge failed"
    • If resolving doesn’t work, perhaps try deleting that case instance

Troubleshooting Branch publish (deprecated as of version 4.4)

Triggering branches by publishing them to the System of Record from the branch explorer was the only way to do remote development up until Deployment Manager version 4.4. In 4.4 and later the Merge Wizard should be used instead.

  1. When using branch publish how can I tell which pipeline was triggered?
    • Ans: If you are using PegaDevOpsFoundation (PDF) version 4.3 or earlier there is no way to determine which pipeline was triggered without logging into the Deployment Manager system.
    • In PDF 4.4 you can use the Merge Wizard experience which allows you to choose a branch.
  2. When using branch publish, I get a success message but a pipeline is not triggered
    1. Ans: Make sure that the operator which is being used to perform the publish has PegaDevOpsFoundation as one of its built on applications.
    2. Make sure that RMURL is populated on the system being published too.
  3. When using branch publish, I get an error saying that a pipeline could not be found.
    • Ans: Make sure that the operator which is being used to perform the publish has the target Application included in its Application stack.
  4. When publishing a branch, I get an error saying that there are multiple pipelines for the target application.
    • Ans: Multiple pipelines for a single application aren’t supported for branch publish. You’ll have to merge branches on the System of Record or ensure that there is only one pipeline per application version.
  5. How can I resolve conflicts if I'm using branch publish?
    1. Ans: You should configure your remote development environments to use Rebase so it's quick and easy to pull the latest changes from the System of Record.
    2. Once you have the latest application rules conflicts can be marked as resolved from the Merge Wizard.

Comments

Keep up to date on this post and subscribe to comments