throw proper Error objects if syscalls are not available