Cant upload files/images, missing temporary folder

Hi all. Have this error message up on 3 different concrete sites. All running either 9.2.5 or 9.2.6. All of the sites are on the same server. I’ve checked the “/application/files” location and there is a temp folder in there with file permissions marked 0775. Just not sure where else this temp folder is missing from.

I found a github post about this that suggested it a server issue. (Cant upload files/images, missing temporary folder · Issue #10477 · concretecms/concretecms · GitHub).

Any help would be appreciated!

This is the current environment info for one of the sites.

Concrete Version

Core Version - 9.2.5
Version Installed - 9.2.5
Database Version - 20240122172319

Environment

production

Database Information

Version: 5.7.44
SQL Mode: STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

Concrete Packages

Modena Theme (2.2.0)

Concrete Overrides

None

Concrete Cache Settings

Block Cache - On
Overrides Cache - On
Full Page Caching - On - If blocks on the particular page allow it.
Full Page Cache Lifetime - Every 6 hours (default setting).

Database Entities Settings

Doctrine Development Mode - Off

Server Software

Apache

Server API

fpm-fcgi

PHP Version

8.2.17

PHP Extensions

bcmath, calendar, cgi-fcgi, Core, ctype, curl, date, dom, fileinfo, filter, ftp, gd, hash, iconv, imap, json, libxml, mbstring, mysqli, mysqlnd, openssl, pcntl, pcre, PDO, pdo_mysql, pdo_sqlite, Phar, posix, random, Reflection, session, SimpleXML, sockets, SPL, sqlite3, standard, tokenizer, xml, xmlreader, xmlwriter, xsl, zip, zlib

PHP Settings

max_execution_time - 30
max_file_uploads - 20
max_input_nesting_level - 64
max_input_time - 60
max_input_vars - 1000
max_multipart_body_parts - -1
memory_limit - 128M
post_max_size - 100M
upload_max_filesize - 100M
zend.exception_string_param_max_len - 15
mbstring.regex_retry_limit - 1000000
mbstring.regex_stack_limit - 100000
mysqli.max_links - Unlimited
mysqli.max_persistent - Unlimited
pcre.backtrack_limit - 1000000
pcre.recursion_limit - 100000
session.cache_limiter - no value
session.gc_maxlifetime - 7200
unserialize_max_depth - 4096