Sonar Cloud and Azure DevOps – Fixing [SQ] Task failed with status FAILED

A pull request build in Azure DevOps failed with the error: “[SQ] Task failed with status FAILED”.

This was the only information given, when de build failed.

Luckily, the manual build gave more information:

Error: /home/vsts/work/1/s/gradlew failed with return code: 1

FAILURE: Build failed with an exception.


2018-10-30T10:51:56.3943526Z * What went wrong:

2018-10-30T10:51:56.3960616Z Execution failed for task ‘:sonarqube’.

2018-10-30T10:51:56.3961713Z > ‘feature/10691-fix-side-menu-not-working]-when-NOT-admin’ is not a valid branch name. It can only contain ‘A-Z’, ‘a-z’, ‘0-9’, ‘-‘, ‘_’, ‘.’, and ‘/’)

The problem was in the branch name, it accidentally contained a “]” character.

Fix: Calling a function with multiple parameters in PowerShell, merges all parameters in the first parameter as an array


When you call a PowerShell function, that expects multiple parameters, with parenthesis, all parameters will be merged in the first parameter, as an array.

The solution is, to call the function with named parameters.

So NOT JoinText($p1, $p2, $p3) but JoinText -p1 $p1 -p2 $p2 -p3 $p3



function JoinText([string]$p1, [string]$p2, [string]$p3) {

return “$p1 $p2 $p3”




$p1 = “some text 1”

$p2 = “some text 2”

$p3 = “some text 3”

$result = JoinText($p1, $p2, $p3)

write-host $result



$p1 = “some text 1”

$p2 = “some text 2”

$p3 = “some text 3”

$result = JoinText -p1 $p1 -p2 $p2 -p3 $p3

write-host $result

Calling a function from another PowerShell script file in the same folder with “relative path”


If you want to execute a function from another PowerShell script file, you can “dot-source” the file.

The “.” is a special operator in PowerShell that can load another PowerShell script file en import all code in it.


Assume both PowerShell scripts are in the same folder, we can use the code in script1.ps1 in script2.ps1 in the following way:


PowerShell script1.ps1


function ReturnGivenText {





    return $text



PowerShell script2.ps1

$text = ReturnGivenText -text “Hello world”

write-host $text


This will output:

Hello world


Note: I use the PowerShell >3 global variable $PSScriptRoot, to make the relative path, absolute, so we can use the “.” operator.


Fix: Power BI POST request returns a 500 Internal Server Error

When posting to the Power BI api uri: in PowerShell version 5.1.17134.228, I got the error:

The remote server returned an error: (500) Internal Server Error.


I invoked the Power BI rest api with the PowerShell script you can find below.

The error was fixed, when I added -ContentType ‘application/json’ parameter to the InvokeRestMethod



PowerShell script


$clientId = “my-client-id”

$PowerBIUserName = “MyUserName”

$PowerBIUserPassword = “MyUserPassword”

$creds = New-Object “Microsoft.IdentityModel.Clients.ActiveDirectory.UserCredential” -ArgumentList $PowerBIUserName,$PowerBIUserPassword

$resourceAppIdURI = “”

$authority = “”;

$authContext = New-Object “Microsoft.IdentityModel.Clients.ActiveDirectory.AuthenticationContext” -ArgumentList $authority


# Acquire token

$authResult = $authContext.AcquireToken($resourceAppIdURI, $clientId, $creds)


# Create a new group

$auth_header = @{



$uri = “”

$body = “{`”name`”:`”myNewGroup`”}”

$response = Invoke-RestMethod -Uri $uri -Headers $auth_header -Method POST -Body $body -ContentType ‘application/json’

$target_group_id = $