Troubleshooting GitLab Duo

When working with GitLab Duo, you might encounter issues.

Start by running a health check to determine if your instance meets the requirements to use GitLab Duo.

If the health check does not resolve your problem, review these troubleshooting steps.

GitLab Duo features do not work on self-managed

In addition to ensuring GitLab Duo features are turned on, you can also do the following:

  1. As administrator, run a health check for GitLab Duo.

    In 17.5 and later

    In GitLab 17.5 and later, you can use the UI to run health checks and download a detailed report that helps identify and troubleshoot issues.

    In 17.4

    In GitLab 17.4, you can run the health check Rake task to generate a detailed report that helps identify and troubleshoot issues.

    sudo gitlab-rails 'cloud_connector:health_check(root,report.json)'
    
    In 17.3 and earlier

    In GitLab 17.3 and earlier, you can download and run the health_check script to generate a detailed report that helps identify and troubleshoot issues.

    1. Download the health check script:

      wget https://gitlab.com/gitlab-org/gitlab/-/snippets/3734617/raw/main/health_check.rb
      
    2. Run the script using Rails Runner:

      gitlab-rails runner [full_path/to/health_check.rb] --debug --username [username] --output-file [report.txt]
      
      Usage: gitlab-rails runner full_path/to/health_check.rb
             --debug                Enable debug mode
             --output-file FILE     Write a report to FILE
             --username USERNAME    Provide a username to test seat assignments
             --skip [CHECK]         Skip specific check (options: access_data, token, license, host, features, end_to_end)
      
  2. Verify that the GitLab instance can reach the required GitLab.com endpoints. You can use command-line tools such as curl to verify the connectivity.

    curl --verbose "https://cloud.gitlab.com"
    
    curl --verbose "https://customers.gitlab.com"
    

    If an HTTP/S proxy is configured for the GitLab instance, include the proxy parameter in the curl command.

    # https proxy for curl
    curl --verbose --proxy "http://USERNAME:PASSWORD@example.com:8080" "https://cloud.gitlab.com"
    curl --verbose --proxy "http://USERNAME:PASSWORD@example.com:8080" "https://customers.gitlab.com"
    
  3. Optional. If you are using a proxy server between the GitLab application and the public internet, disable DNS rebinding protection.

  4. Manually synchronize subscription data.

GitLab Duo features not available for users

In addition to turning on GitLab Duo features, you can also do the following:

  1. Verify that subscription seats have been purchased.
  2. Ensure that seats are assigned to users.
  3. For IDE users with the GitLab Duo extension:
    • Verify that the extension is up-to-date.
    • Run extension setting health checks, and test the authentication.