Ошибка случается, если динамически строить пути, и внутри пути окажется файл вместо папки.
Пример:
Есть папка A
внутри папки B,C,D и, например, файл f.txt
Используем scandir('A'), чтобы прочитать содержимое корневой папки
получаем массив элементов.
Далее строим путь по этим элементам, например:
foreach (scandir('A') as $item) { // понятно, что нужно исключить . и ..
// далее, например, нужно проверить существование файла во всех папках
if (file_exists('A/' . $item . '/file.php')) {
Соответственно, на одной из итераций получим:
'A/f.txt/file.php'
И это вызывает ошибку