PDOStatement :: execute (): SQLSTATE [HY093]: número de parâmetro inválido: o parâmetro não foi definido

Abaixo está o meu código, não consigo resolver esse erro. Qualquer ajuda é apreciada. Estou tentando atualizar uma tabela no meu banco de dados.

    public function updateUnit($params){
    $user = 'monil';
    $password = 'Masters123';   
    $dbh = new \PDO('mysql:host=127.0.0.1;dbname=tcsdb', $user, $password);

    $task=array(':UnitCode'=>$params['UnitCode'],':UnitDescription'=>$params['UnitDescription']    ,
      ':UnitName'=>$params['UnitName'], ':UnitID'=>$params['UnitID']);
    echo $params['UnitID'];

    $sth = $dbh->prepare('UPDATE unit SET UnitCode = :UnitCode,'
        . 'UnitDescription = :UnitDescription,UnitName = :UnitName WHERE UnitId=:UnitId');
    $sth->execute($task); 

    return true;
}

questionAnswers(3)

yourAnswerToTheQuestion