v25 [Scan Asset Directories] error

Getting a PHP error for Home > Reports > Template Builder > Manage Assets > Scan Asset Directories

[Sat Jan 21 00:11:53.945808 2023] [proxy_fcgi:error] [pid 80xx:tid 14071582858xxxx] [client xx.xx.xx.xx:0] AH01071: Got error ‘PHP message: PHP Fatal error: Uncaught UnexpectedValueException: RecursiveDirectoryIterator::__construct(/home/xxxxxx.c…n}
thrown in /home/…/public_html/home/modules/Reports/templates_assets_scanProcess.php on line 58’, referer: http://…com/index.php?q=%2Fmodules%2FReports%2Ftemplates_assets.php

This is odd, as it tests out fine locally and in production. Can you let me know what type of server you are running Gibbon on (Linux with Apache or Nginx? Windows?) and check to see that the folder permissions haven’t changed.

nginx version: nginx/1.21.3

Server version: Apache/2.4.54 (Debian)

Distributor ID: Debian
Description: Debian GNU/Linux 10 (buster)
Release: 10

Checked folder permissions.

The error is in the reports Custom Asset Path. Gibbon is expecting a templates folder within /uploads/reports/. When this folder is not found the systems throws the error. Recreating this folder solved the problem for me.

Hope this helps.

Thanks @ngn. If this is a solution I do not expect it is “the” solution since we can’t possibly have to go in after installation and create folders.
Thanks again.

Noted @tiekubd

@ross can you please take a look.

I have been able to duplicate the error on two separate systems. one running centos the other ubuntu. Only ubuntu gave the full error log. Both machines are running apache. Below is the error log i encountered after running scan assets.

[Thu Jan 26 21:35:54.514213 2023] [php:error] [pid 1257655] [client xxxxxxxx] PHP Fatal error: Uncaught UnexpectedValueException: RecursiveDirectoryIterator::__construct(/xxxxxxxx/uploads/reports/templates): Failed to open directory: No such file or directory in /xxxxxxxx/modules/Reports/templates_assets_scanProcess.php:58
Stack trace:
#0 /xxxxxxxx/modules/Reports/templates_assets_scanProcess.php(58): RecursiveDirectoryIterator->__construct()
#1 /xxxxxxxx/modules/Reports/templates_assets_scanProcess.php(86): {closure}()
#2 {main}
thrown in /xxxxxxxx/modules/Reports/templates_assets_scanProcess.php on line 58, referer: https://xxxxxxxx/index.php?q=%2Fmodules%2FReports%2Ftemplates_assets.php

system 1: Ubuntu Linux 20.04.5, Apache 2.4.41, MariaDB version 10.3.37
system 2: centos 7.9, Apache version 2.4.6, MariaDB version 10.5.18

Yes, thanks ngn for digging in further and sharing your findings. Looks like this is related to /uploads/reports being missing from the InstallBundle file. While the folder exists, it appears to be a facet of Git that empty folders are not committed or included in the repository, so even though we had pre-created this folder with the intention of preventing this in new installs, the folder may not exist as intended. I believe I can fix it for future releases by adding a placeholder file inside the folder to ensure that it is included in the next release InstallBundle, but for existing installs the solution would be to create this folder and then ensure your system has write permissions for it.