What is happening is that our server doesn't allow Apache User permissions to use the function is_dir($dir) with any directory below httpdocs.
So when the below function in moodlelib.php is called with $recursive=true this error always happens.
This is a situation that only occurs on Moodle 1.8.3 because Moodle 1.8.2 backup never calls this function with $recursive=true.
function check_dir_exists($dir, $create=false, $recursive=false) {
global $CFG;
$status = true;
if(!is_dir($dir)) {
if (!$create) {
$status = false;
} else {
umask(0000);
if ($recursive) {
// PHP 5.0 has recursive mkdir parameter, but 4.x does not 
$dir = str_replace('\\', '/', $dir); //windows compatibility
$dirs = explode('/', $dir);
$dir = array_shift($dirs).'/'; //skip root or drive letter
foreach ($dirs as $part) {
if ($part == '') {
continue;
}
$dir .= $part.'/';
if (!is_dir($dir)) {
if (!mkdir($dir, $CFG->directorypermissions)) {
$status = false;
break;
}
}
}
} else {
$status = mkdir($dir, $CFG->directorypermissions);
}
}
}
return $status;
}