nystudio107 / craft-imageoptimize

Automatically create & optimize responsive image transforms, using either native Craft transforms or a service like Imgix, with zero template changes.
https://nystudio107.com/plugins/imageoptimize
Other
235 stars 36 forks source link

IMGIX Craft 4 issue: TypeError: craft\helpers\Assets::generateUrl(): Argument #1 ($fs) must be of type craft\base\FsInterface, craft\models\Volume given #342

Closed phillipsandoveracademy closed 2 years ago

phillipsandoveracademy commented 2 years ago

Describe the bug

Trying to test the imgix integration on Craft 4 install. Getting this issue in the CMS:

2022-05-31 14:29:38 [web.ERROR] [TypeError] TypeError: craft\helpers\Assets::generateUrl(): Argument #1 ($fs) must be of type craft\base\FsInterface, craft\models\Volume given, called in /home/cms-b4s3s/cms.pablue.org/vendor/nystudio107/craft-imageoptimize-imgix/src/imagetransforms/ImgixImageTransform.php on line 310 and defined in /home/cms-b4s3s/cms.pablue.org/vendor/craftcms/cms/src/helpers/Assets.php:89
Stack trace:
#0 /home/cms-b4s3s/cms.pablue.org/vendor/nystudio107/craft-imageoptimize-imgix/src/imagetransforms/ImgixImageTransform.php(310): craft\helpers\Assets::generateUrl()
#1 /home/cms-b4s3s/cms.pablue.org/vendor/nystudio107/craft-imageoptimize-imgix/src/imagetransforms/ImgixImageTransform.php(181): nystudio107\imageoptimizeimgix\imagetransforms\ImgixImageTransform->getAssetUri()
#2 /home/cms-b4s3s/cms.pablue.org/vendor/nystudio107/craft-imageoptimize/src/services/Optimize.php(233): nystudio107\imageoptimizeimgix\imagetransforms\ImgixImageTransform->getTransformUrl()
#3 /home/cms-b4s3s/cms.pablue.org/vendor/nystudio107/craft-imageoptimize/src/ImageOptimize.php(354): nystudio107\imageoptimize\services\Optimize->handleGetAssetThumbUrlEvent()
#4 [internal function]: nystudio107\imageoptimize\ImageOptimize::nystudio107\imageoptimize\{closure}()
#5 /home/cms-b4s3s/cms.pablue.org/vendor/yiisoft/yii2/base/Event.php(312): call_user_func()
#6 /home/cms-b4s3s/cms.pablue.org/vendor/yiisoft/yii2/base/Component.php(642): yii\base\Event::trigger()
#7 /home/cms-b4s3s/cms.pablue.org/vendor/craftcms/cms/src/services/Assets.php(592): yii\base\Component->trigger()
#8 /home/cms-b4s3s/cms.pablue.org/vendor/craftcms/cms/src/elements/Asset.php(1607): craft\services\Assets->getThumbUrl()
#9 /home/cms-b4s3s/cms.pablue.org/vendor/craftcms/cms/src/helpers/Cp.php(280): craft\elements\Asset->getThumbUrl()
#10 /home/cms-b4s3s/cms.pablue.org/vendor/craftcms/cms/src/web/View.php(2155): craft\helpers\Cp::elementHtml()
#11 /home/cms-b4s3s/cms.pablue.org/vendor/craftcms/cms/src/web/View.php(1704): craft\web\View->_getCpElementHtml()
#12 /home/cms-b4s3s/cms.pablue.org/storage/runtime/compiled_templates/87/87977527b0974d17aa65b9e47d13fcd8.php(38): craft\web\View->invokeHook()
#13 /home/cms-b4s3s/cms.pablue.org/vendor/twig/twig/src/Template.php(394): __TwigTemplate_c3f22b87123275e5428e2af7e42778a4->doDisplay()
#14 /home/cms-b4s3s/cms.pablue.org/vendor/twig/twig/src/Template.php(367): Twig\Template->displayWithErrorHandling()
#15 /home/cms-b4s3s/cms.pablue.org/storage/runtime/compiled_templates/ab/ab069934cb2a823ed7256ab3eb653668.php(156): Twig\Template->display()
#16 /home/cms-b4s3s/cms.pablue.org/vendor/twig/twig/src/Template.php(394): __TwigTemplate_a5949151227d0588bccb044dd648fd08->doDisplay()
#17 /home/cms-b4s3s/cms.pablue.org/vendor/twig/twig/src/Template.php(367): Twig\Template->displayWithErrorHandling()
#18 /home/cms-b4s3s/cms.pablue.org/storage/runtime/compiled_templates/3a/3a0414bb1c3c167e27de807da0cc047b.php(127): Twig\Template->display()
#19 /home/cms-b4s3s/cms.pablue.org/vendor/twig/twig/src/Template.php(394): __TwigTemplate_5645be0d7948e903db09a1a876cdd85a->doDisplay()
#20 /home/cms-b4s3s/cms.pablue.org/vendor/twig/twig/src/Template.php(367): Twig\Template->displayWithErrorHandling()
#21 /home/cms-b4s3s/cms.pablue.org/vendor/twig/twig/src/Template.php(379): Twig\Template->display()
#22 /home/cms-b4s3s/cms.pablue.org/vendor/twig/twig/src/TemplateWrapper.php(40): Twig\Template->render()
#23 /home/cms-b4s3s/cms.pablue.org/vendor/twig/twig/src/Environment.php(277): Twig\TemplateWrapper->render()
#24 /home/cms-b4s3s/cms.pablue.org/vendor/craftcms/cms/src/web/View.php(414): Twig\Environment->render()
#25 /home/cms-b4s3s/cms.pablue.org/vendor/craftcms/cms/src/base/Element.php(999): craft\web\View->renderTemplate()
#26 /home/cms-b4s3s/cms.pablue.org/vendor/craftcms/cms/src/controllers/ElementIndexesController.php(644): craft\base\Element::indexHtml()
#27 /home/cms-b4s3s/cms.pablue.org/vendor/craftcms/cms/src/controllers/ElementIndexesController.php(142): craft\controllers\ElementIndexesController->elementResponseData()
#28 [internal function]: craft\controllers\ElementIndexesController->actionGetElements()
#29 /home/cms-b4s3s/cms.pablue.org/vendor/yiisoft/yii2/base/InlineAction.php(57): call_user_func_array()
#30 /home/cms-b4s3s/cms.pablue.org/vendor/yiisoft/yii2/base/Controller.php(178): yii\base\InlineAction->runWithParams()
#31 /home/cms-b4s3s/cms.pablue.org/vendor/yiisoft/yii2/base/Module.php(552): yii\base\Controller->runAction()
#32 /home/cms-b4s3s/cms.pablue.org/vendor/craftcms/cms/src/web/Application.php(301): yii\base\Module->runAction()
#33 /home/cms-b4s3s/cms.pablue.org/vendor/craftcms/cms/src/web/Application.php(625): craft\web\Application->runAction()
#34 /home/cms-b4s3s/cms.pablue.org/vendor/craftcms/cms/src/web/Application.php(280): craft\web\Application->_processActionRequest()
#35 /home/cms-b4s3s/cms.pablue.org/vendor/yiisoft/yii2/base/Application.php(384): craft\web\Application->handleRequest()
#36 /home/cms-b4s3s/cms.pablue.org/public/index.php(26): yii\base\Application->run()
#37 {main} {"memory":17502736,"exception":"[object] (TypeError(code: 0): craft\\helpers\\Assets::generateUrl(): Argument #1 ($fs) must be of type craft\\base\\FsInterface, craft\\models\\Volume given, called in /home/cms-b4s3s/cms.pablue.org/vendor/nystudio107/craft-imageoptimize-imgix/src/imagetransforms/ImgixImageTransform.php on line 310 at /home/cms-b4s3s/cms.pablue.org/vendor/craftcms/cms/src/helpers/Assets.php:89)"} 

I am trying to test on a public domain with a trial version to ensure it works before purchasing, so I am not sure if this could be causing the issue.

To reproduce

Steps to reproduce the behaviour:

  1. Go to "Settings -> ImageOptimize"
  2. Select Imgix and fill in the Imgix Source Domain and Imgix API Key then click save
  3. See error message above.

Expected behaviour

Able to access CMS sections like Assets without a server error.

Versions

zizther commented 2 years ago

Also getting this issue on Craft 4.0.4 with the same image optimize setup

khalwat commented 2 years ago

Addressed in: https://github.com/nystudio107/craft-imageoptimize-imgix/commit/2146015d9228bc96e9ffd9d4875e370bd24c7c6d

You can try it now by setting your semver in your composer.json to look like this:

    "nystudio107/craft-imageoptimize-imgix": "dev-develop-v4 as 4.0.1”,

Then do a composer clear-cache && composer update