код рабочий, но выдает ошибку, почему?