We were running 1.10 with PHP 5.6 for quite some time, and then we upgraded two-three weeks ago.
At the moment, system is the following:

CentOS 7
PHP 7.3.17
MySQL 5.6.44

Error we get when printing tickets in the logs is:
PHP Fatal error: Uncaught Error: Class 'Aws\S3\S3Client' not found in phar:///var/www/html/osticket/upload/include/plugins/storage-s3.phar/storage.php:36\nStack trace:\n#0 /var/www/html/osticket/upload/include/class.file.php(742): S3StorageBackend->__construct(Object(AttachmentFile))\n#1 /var/www/html/osticket/upload/include/class.file.php(109): FileStorageBackend::getInstance(Object(AttachmentFile))\n#2 /var/www/html/osticket/upload/include/class.file.php(113): AttachmentFile->open()\n#3 /var/www/html/osticket/upload/include/class.file.php(131): AttachmentFile->sendData(false)\n#4 /var/www/html/osticket/upload/include/class.pdf.php(45): AttachmentFile->getData()\n#5 [internal function]: mPDFWithLocalImages->{closure}(Array)\n#6 /var/www/html/osticket/upload/include/class.pdf.php(48): preg_replace_callback('/"cid🙁[\\w.-]{3...', Object(Closure), '<html>\n\n<head>\n...')\n#7 /var/www/html/osticket/upload/include/class.pdf.php(101): mPDFWithLocalImages->WriteHtml('<html>\n\n<head>\n...', 0, true, true)\n#8 /var/www/html/osticket/upload/i in phar:///var/www/html/osticket/upload/include/plugins/storage-s3.phar/storage.php on line 36, referer: https://our-url.com/scp/tickets.php?id=158833
Also, this warning appears before the error:
PHP Warning: is_file(): Unable to find the wrapper &quot;phar&quot; - did you forget to enable it when you configured PHP? in phar:///var/www/html/osticket/upload/include/plugins/storage-s3.phar/lib/Symfony/Component/ClassLoader/UniversalClassLoader.php on line 286, referer: https://our-url.com/scp/tickets.php?id=158833

I assume something is happening with PHP after the upgrade, but I am not sure what exactly, since I have no clue about PHP 🙂
I've attached screenshots of the Dashboard - > Information page and Phar properties from phpinfo()

We're using S3 plugin for the attachments from the beginning, and we have no problems retrieving those attachments. Also, just for test, I've tried to re-save S3 access keys on the plugin page, and it also worked, didn't give me any error. I've checked the MD5 on the S3 plugin that I've used with 1.10 (and I copied that one to the upgrades of 1.12.5 and 1.14.1) and the MD5 of the S3 plugin from the website, and they're the same. I didn't have the guts to disable or delete the plugin, and then to reconfigure it from scratch 🙂

Thanks in advance for your help!

When you upgraded osTicket, did you also upgrade the Storage::Attachments in Amazon S3 plugin?

@KevinTheJedi thoughts?

    @highl1

    I would recommend upgrading the plugin as well. Just seems odd that it can't find a class within the PHAR archive that is installed. Maybe try restarting PHP-FPM (if installed) and restarting Apache. Also, try removing the OPCache extension for PHP and retest. Maybe it's a bug with OPCache as I saw an article on PHP's forum where OPCache was messing with PHAR wrappers and throwing the same error.

    Cheers.

      ntozier I've left these settings as they were

      And I've downloaded v1.12.5 and v1.14.1 zip files from the osTicket website with the included plugin, but I don't think plugin changed recently? Or I am not getting what you're asking me 🙂
      Settings - > System - > Store Attachments is set up to my S3 bucket, as it was before. The only change I recently did to it was to increase attachment size to 10 MB via php.ini

      @highl1

      Re-installing the plugin ensures the old one you currently have was not corrupted in any way.

      Yes, you can move the old phar somewhere to keep as a backup, then you just move the new one into the include/plugins/ folder.

      Cheers.

      I am having similar issue ( no 500 error just white screen ) - and in error_log:
      am testing upgrade.

      PHP 7.2.31
      osticket-14.2
      s3 plugin was re-built.

      [Fri May 22 11:34:11.231083 2020] [php7:warn] [pid 10576] [client 192.168.1.5:50388] PHP Warning: is_file(): Unable to find the wrapper &quot;phar&quot; - did you forget to enable it when you configured PHP? in /var/www/html/awesome/include/UniversalClassLoader.php on line 286, referer: http://192.168.1.15/awesome/scp/tickets.php?id=8674
      [Fri May 22 11:34:11.231188 2020] [php7:error] [pid 10576] [client 192.168.1.5:50388] PHP Fatal error: Uncaught Error: Class 'Aws\S3\S3Client' not found in phar:///var/www/html/awesome/include/plugins/storage-s3.phar/storage.php:38\nStack trace:\n#0 /var/www/html/awesome/include/class.file.php(742): S3StorageBackend->__construct(Object(AttachmentFile))\n#1 /var/www/html/awesome/include/class.file.php(109): FileStorageBackend::getInstance(Object(AttachmentFile))\n#2 /var/www/html/awesome/include/class.file.php(113): AttachmentFile->open()\n#3 /var/www/html/awesome/include/class.file.php(131): AttachmentFile->sendData(false)\n#4 /var/www/html/awesome/include/class.pdf.php(45): AttachmentFile->getData()\n#5 [internal function]: mPDFWithLocalImages->{closure}(Array)\n#6 /var/www/html/awesome/include/class.pdf.php(48): preg_replace_callback('/"cid🙁[\\w.-]{3...', Object(Closure), '<html>\n\n<head>\n...')\n#7 /var/www/html/awesome/include/class.pdf.php(101): mPDFWithLocalImages->WriteHtml('<html>\n\n<head>\n...', 0, true, true)\n#8 /var/www/html/awesome/include/class.pdf.php(78): Ticket2PDF->_print()\n#9 /var/www/html/awesome/ in phar:///var/www/html/awesome/include/plugins/storage-s3.phar/storage.php on line 38, referer: http://192.168.1.15/awesome/scp/tickets.php?id=8674

        psyborgison
        After installing PHP_Compat tickets print with s3 attachments.

        I found people with similar errors that tried installing PHPUnit -

        #pear install PHPUnit
        WARNING: "pear/PHPUnit" is deprecated in favor of "channel://pear.phpunit.de/PHPUnit"
        WARNING: channel "pear.php.net" has updated its protocols, use "pear channel-update pear.php.net" to update
        Did not download dependencies: pear/PHP_Compat, use --alldeps or --onlyreqdeps to download automatically
        pear/PHPUnit requires PHP (version >= 4.1.0, version <= 6.0.0), installed version is 7.2.31
        pear/PHPUnit requires PHP (version >= 4.3.0, version <= 6.0.0), installed version is 7.2.31
        pear/PHPUnit can optionally use package "pear/PHP_Compat"
        No valid packages found
        install failed

        pear install pear/PHP_Compat

        WARNING: channel "pear.php.net" has updated its protocols, use "pear channel-update pear.php.net" to update
        downloading PHP_Compat-1.5.0.tgz ...
        Starting to download PHP_Compat-1.5.0.tgz (44,939 bytes)
        ............done: 44,939 bytes
        install ok: channel://pear.php.net/PHP_Compat-1.5.0

        @KevinTheJedi I've tried updating the plugin, it's the same situation. My PHP release is php-7.3.18-1.el7.remi.x86_64, when updating PHP I assumed Remi is the stable release channel?
        @psyborgison unfortunately, this didn't help me. I've run the command pear install pear/PHP_Compat, restarted Apache, but the error is the same in the logs. Any other thing I should do here, besides installing PHP_Compat via PEAR?

        @highl1 Actually looks like the issue returned. My php knowledge is limited.
        Am continuing to search.

        @highl1
        I disabled the phar version of the storage-s3 plugin from core-plugins
        and re-enabled as just the directory ( instead of phar )
        and now am able to print -

        This is how we previously had setup plugins.

          after disabling the phar version - i had to remove it from the plugin directory -
          or got white screen.

          psyborgison can you please explain me these steps more in detail? You went to Admin panel, and Manage - > Plugins, and then disabled the plugin, and reenabled it or something else? I am quite not that familiar with osTicket, so have to ask every thing in detail 🙂

            highl1
            via GUI - I first disabled the current plugin (Admin->Manage->plugin)
            the phar version -

            then login to server: and 
            "cd /var/www/html/xxxx/include/plugins"
            mkdir disabled
            mv s3-storage.phar disabled
            cp -rp core-utils/s3-storage s3-storage ( copies the directory to plugins dir) 

            then go back to GUI and click add plugin
            it should see the directory -
            click add, and then re-configure

              i'll continue searching for a way to solve issue. As what have done is a work-around.
              PHP Warning: is_file(): Unable to find the wrapper phar; - did you forget to enable it when you configured PHP?

              I am on remi-php72 centos 7

              php -i|grep -i phar
              Registered PHP Streams => https, ftps, compress.zlib, php, file, glob, data, http, ftp, compress.bzip2, phar, sqlsrv, zip
              Phar
              Phar: PHP Archive support => enabled
              Phar EXT version => 2.0.2
              Phar API version => 1.1.1
              Phar-based phar archives => enabled
              Tar-based phar archives => enabled
              ZIP-based phar archives => enabled
              Phar based on pear/PHP_Archive, original concept by Davey Shafik.
              Phar fully realized by Gregory Beaver and Marcus Boerger.
              phar.cache_list => no value => no value
              phar.readonly => On => On
              phar.require_hash => On => On

              rpm -qa|grep php
              php-fedora-autoloader-1.0.1-2.el7.noarch
              php72-runtime-2.0-1.el7.remi.x86_64
              php-brumann-polyfill-unserialize-1.0.4-1.el7.noarch
              php-pdo-7.2.31-1.el7.remi.x86_64
              php-mysqlnd-7.2.31-1.el7.remi.x86_64
              php-mbstring-7.2.31-1.el7.remi.x86_64
              php-intl-7.2.31-1.el7.remi.x86_64
              php72-unit-php-1.17.0-1.el7.remi.x86_64
              php-pecl-apcu-5.1.18-1.el7.remi.7.2.x86_64
              php-pecl-zip-1.18.2-1.el7.remi.7.2.x86_64
              php-sqlsrv-5.8.1-1.el7.remi.7.2.x86_64
              php72-php-json-7.2.31-1.el7.remi.x86_64
              php72-php-fpm-7.2.31-1.el7.remi.x86_64
              php-typo3-phar-stream-wrapper2-2.1.3-1.el7.noarch
              php-common-7.2.31-1.el7.remi.x86_64
              php-cli-7.2.31-1.el7.remi.x86_64
              php-7.2.31-1.el7.remi.x86_64
              php-odbc-7.2.31-1.el7.remi.x86_64
              php-imap-7.2.31-1.el7.remi.x86_64
              php-process-7.2.31-1.el7.remi.x86_64
              php-xml-7.2.31-1.el7.remi.x86_64
              php72-php-embedded-7.2.31-1.el7.remi.x86_64
              php-fpm-7.2.31-1.el7.remi.x86_64
              php-pear-1.10.12-1.el7.remi.noarch
              php72-php-common-7.2.31-1.el7.remi.x86_64
              php-json-7.2.31-1.el7.remi.x86_64
              php-devel-7.2.31-1.el7.remi.x86_64
              php-pdo-dblib-7.2.31-1.el7.remi.x86_64
              php-gd-7.2.31-1.el7.remi.x86_64
              php72-php-cli-7.2.31-1.el7.remi.x86_64

              highl1
              I guess a phar file is essentially a php tar file.

              Download the plugins directory:
              https://github.com/osTicket/osTicket-plugins
              git clone https://github.com/osTicket/osTicket-plugins
              I think i renamed the directory core-utils.
              from in there run :
              php make.php hydrate ( to download 3rd party libraries )
              Then you can copy the directory s3-storage into plugins

              From the README.md

              Core plugins for osTicket

              Core plugins for osTicket-1.8 and onward

              Installing

              Clone this repo or download the zip file and place the contents into your
              include/plugins folder

              After cloning, hydrate the repo by downloading the third-party library
              dependencies.

              php make.php hydrate
              5 days later