HBLL-Collection-Development / omeka-s-any-cloud

Omeka S Module for storing media in one of several cloud storage services
https://omeka.org/s/modules/AnyCloud/
MIT License
10 stars 4 forks source link

Error that points to Guzzle when trying to delete an item or media in Omeka #33

Closed CSSSchaffer closed 1 year ago

CSSSchaffer commented 1 year ago

Describe the bug

We can create an item and upload media hosted by Amazon S3 services through the AnyCloud module in Omeka S. However, when trying to delete the item or media from the item, we receive an error pointing to Guzzle through AnyCloud. The first line states:

method_exists(): Argument #1 ($object_or_class) must be of type object|string, array given

and subsequent lines from the error point to /modules/AnyCloud/vendor/guzzlehttp.

We checked our settings to Amazon and they are correct. We recently updated Omeka S to version 3.2.0 and are using PHP8, and wondering if it has anything to do with this.

To Reproduce Steps to reproduce the behavior:

The error is happening while logged into our admin view so I can't provide the link here. But here is the whole error copied and pasted from admin view:

TypeError method_exists(): Argument #1 ($object_or_class) must be of type object|string, array given

Details:

TypeError: method_exists(): Argument #1 ($object_or_class) must be of type object|string, array given in /home/schaffer/digitalcollections.union.edu/modules/AnyCloud/vendor/guzzlehttp/promises/src/RejectedPromise.php:16 Stack trace:

0 /home/schaffer/digitalcollections.union.edu/modules/AnyCloud/vendor/guzzlehttp/promises/src/RejectedPromise.php(16): method_exists(Array, 'then')

1 /home/schaffer/digitalcollections.union.edu/modules/AnyCloud/vendor/aws/aws-sdk-php/src/Handler/GuzzleV6/GuzzleHandler.php(56): GuzzleHttp\Promise\RejectedPromise->__construct(Array)

2 /home/schaffer/digitalcollections.union.edu/modules/AnyCloud/vendor/guzzlehttp/promises/src/Promise.php(203): Aws\Handler\GuzzleV6\GuzzleHandler::Aws\Handler\GuzzleV6{closure}(Object(GuzzleHttp\Exception\ClientException))

3 /home/schaffer/digitalcollections.union.edu/modules/AnyCloud/vendor/guzzlehttp/promises/src/Promise.php(156): GuzzleHttp\Promise\Promise::callHandler(2, Object(GuzzleHttp\Exception\ClientException), Array)

4 /home/schaffer/digitalcollections.union.edu/modules/AnyCloud/vendor/guzzlehttp/promises/src/TaskQueue.php(47): GuzzleHttp\Promise\Promise::GuzzleHttp\Promise{closure}()

5 /home/schaffer/digitalcollections.union.edu/modules/AnyCloud/vendor/guzzlehttp/guzzle/src/Handler/CurlMultiHandler.php(118): GuzzleHttp\Promise\TaskQueue->run()

6 /home/schaffer/digitalcollections.union.edu/modules/AnyCloud/vendor/guzzlehttp/guzzle/src/Handler/CurlMultiHandler.php(145): GuzzleHttp\Handler\CurlMultiHandler->tick()

7 /home/schaffer/digitalcollections.union.edu/modules/AnyCloud/vendor/guzzlehttp/promises/src/Promise.php(246): GuzzleHttp\Handler\CurlMultiHandler->execute(true)

8 /home/schaffer/digitalcollections.union.edu/modules/AnyCloud/vendor/guzzlehttp/promises/src/Promise.php(223): GuzzleHttp\Promise\Promise->invokeWaitFn()

9 /home/schaffer/digitalcollections.union.edu/modules/AnyCloud/vendor/guzzlehttp/promises/src/Promise.php(267): GuzzleHttp\Promise\Promise->waitIfPending()

10 /home/schaffer/digitalcollections.union.edu/modules/AnyCloud/vendor/guzzlehttp/promises/src/Promise.php(225): GuzzleHttp\Promise\Promise->invokeWaitList()

11 /home/schaffer/digitalcollections.union.edu/modules/AnyCloud/vendor/guzzlehttp/promises/src/Promise.php(267): GuzzleHttp\Promise\Promise->waitIfPending()

12 /home/schaffer/digitalcollections.union.edu/modules/AnyCloud/vendor/guzzlehttp/promises/src/Promise.php(225): GuzzleHttp\Promise\Promise->invokeWaitList()

13 /home/schaffer/digitalcollections.union.edu/modules/AnyCloud/vendor/guzzlehttp/promises/src/Promise.php(62): GuzzleHttp\Promise\Promise->waitIfPending()

14 /home/schaffer/digitalcollections.union.edu/modules/AnyCloud/vendor/aws/aws-sdk-php/src/AwsClientTrait.php(58): GuzzleHttp\Promise\Promise->wait()

15 /home/schaffer/digitalcollections.union.edu/modules/AnyCloud/vendor/aws/aws-sdk-php/src/S3/S3ClientTrait.php(287): Aws\AwsClient->execute(Object(Aws\Command))

16 /home/schaffer/digitalcollections.union.edu/modules/AnyCloud/vendor/aws/aws-sdk-php/src/S3/S3ClientTrait.php(272): Aws\S3\S3Client->checkExistenceWithCommand(Object(Aws\Command))

17 /home/schaffer/digitalcollections.union.edu/modules/AnyCloud/vendor/league/flysystem-aws-s3-v3/src/AwsS3Adapter.php(235): Aws\S3\S3Client->doesObjectExist('omekatest-union...', 'original/ddd1e8...', Array)

18 /home/schaffer/digitalcollections.union.edu/modules/AnyCloud/vendor/league/flysystem/src/Filesystem.php(57): League\Flysystem\AwsS3v3\AwsS3Adapter->has('original/ddd1e8...')

19 /home/schaffer/digitalcollections.union.edu/modules/AnyCloud/vendor/league/flysystem/src/Filesystem.php(388): League\Flysystem\Filesystem->has('original/ddd1e8...')

20 /home/schaffer/digitalcollections.union.edu/modules/AnyCloud/vendor/league/flysystem/src/Filesystem.php(235): League\Flysystem\Filesystem->assertPresent('original/ddd1e8...')

21 /home/schaffer/digitalcollections.union.edu/modules/AnyCloud/src/File/Store/AnyCloud.php(56): League\Flysystem\Filesystem->delete('original/ddd1e8...')

22 /home/schaffer/digitalcollections.union.edu/application/Module.php(288): AnyCloud\File\Store\AnyCloud->delete('original/ddd1e8...')

23 /home/schaffer/digitalcollections.union.edu/vendor/laminas/laminas-eventmanager/src/EventManager.php(321): Omeka\Module->deleteMediaFiles(Object(Laminas\EventManager\Event))

24 /home/schaffer/digitalcollections.union.edu/vendor/laminas/laminas-eventmanager/src/EventManager.php(170): Laminas\EventManager\EventManager->triggerListeners(Object(Laminas\EventManager\Event))

25 /home/schaffer/digitalcollections.union.edu/application/src/Db/Event/Subscriber/Entity.php(116): Laminas\EventManager\EventManager->triggerEvent(Object(Laminas\EventManager\Event))

26 /home/schaffer/digitalcollections.union.edu/application/src/Db/Event/Subscriber/Entity.php(57): Omeka\Db\Event\Subscriber\Entity->trigger('entity.remove.p...', Object(Doctrine\ORM\Event\LifecycleEventArgs))

27 /home/schaffer/digitalcollections.union.edu/vendor/doctrine/event-manager/lib/Doctrine/Common/EventManager.php(41): Omeka\Db\Event\Subscriber\Entity->postRemove(Object(Doctrine\ORM\Event\LifecycleEventArgs))

28 /home/schaffer/digitalcollections.union.edu/vendor/doctrine/orm/lib/Doctrine/ORM/Event/ListenersInvoker.php(113): Doctrine\Common\EventManager->dispatchEvent('postRemove', Object(Doctrine\ORM\Event\LifecycleEventArgs))

29 /home/schaffer/digitalcollections.union.edu/vendor/doctrine/orm/lib/Doctrine/ORM/UnitOfWork.php(1252): Doctrine\ORM\Event\ListenersInvoker->invoke(Object(Doctrine\ORM\Mapping\ClassMetadata), 'postRemove', Object(Omeka\Entity\Media), Object(Doctrine\ORM\Event\LifecycleEventArgs), 4)

30 /home/schaffer/digitalcollections.union.edu/vendor/doctrine/orm/lib/Doctrine/ORM/UnitOfWork.php(443): Doctrine\ORM\UnitOfWork->executeDeletions(Object(Doctrine\ORM\Mapping\ClassMetadata))

31 /home/schaffer/digitalcollections.union.edu/vendor/doctrine/orm/lib/Doctrine/ORM/EntityManager.php(376): Doctrine\ORM\UnitOfWork->commit(NULL)

32 /home/schaffer/digitalcollections.union.edu/application/src/Api/Adapter/AbstractEntityAdapter.php(510): Doctrine\ORM\EntityManager->flush()

33 /home/schaffer/digitalcollections.union.edu/application/src/Api/Manager.php(239): Omeka\Api\Adapter\AbstractEntityAdapter->delete(Object(Omeka\Api\Request))

34 /home/schaffer/digitalcollections.union.edu/application/src/Api/Manager.php(164): Omeka\Api\Manager->execute(Object(Omeka\Api\Request))

35 /home/schaffer/digitalcollections.union.edu/application/src/Mvc/Controller/Plugin/Api.php(189): Omeka\Api\Manager->delete('items', '10881', Array, Array)

36 /home/schaffer/digitalcollections.union.edu/application/src/Controller/Admin/ItemController.php(128): Omeka\Mvc\Controller\Plugin\Api->delete('items', '10881')

37 /home/schaffer/digitalcollections.union.edu/vendor/laminas/laminas-mvc/src/Controller/AbstractActionController.php(77): Omeka\Controller\Admin\ItemController->deleteAction()

38 /home/schaffer/digitalcollections.union.edu/vendor/laminas/laminas-eventmanager/src/EventManager.php(321): Laminas\Mvc\Controller\AbstractActionController->onDispatch(Object(Laminas\Mvc\MvcEvent))

39 /home/schaffer/digitalcollections.union.edu/vendor/laminas/laminas-eventmanager/src/EventManager.php(178): Laminas\EventManager\EventManager->triggerListeners(Object(Laminas\Mvc\MvcEvent), Object(Closure))

40 /home/schaffer/digitalcollections.union.edu/vendor/laminas/laminas-mvc/src/Controller/AbstractController.php(103): Laminas\EventManager\EventManager->triggerEventUntil(Object(Closure), Object(Laminas\Mvc\MvcEvent))

41 /home/schaffer/digitalcollections.union.edu/vendor/laminas/laminas-mvc/src/DispatchListener.php(139): Laminas\Mvc\Controller\AbstractController->dispatch(Object(Laminas\Http\PhpEnvironment\Request), Object(Laminas\Http\PhpEnvironment\Response))

42 /home/schaffer/digitalcollections.union.edu/vendor/laminas/laminas-eventmanager/src/EventManager.php(321): Laminas\Mvc\DispatchListener->onDispatch(Object(Laminas\Mvc\MvcEvent))

43 /home/schaffer/digitalcollections.union.edu/vendor/laminas/laminas-eventmanager/src/EventManager.php(178): Laminas\EventManager\EventManager->triggerListeners(Object(Laminas\Mvc\MvcEvent), Object(Closure))

44 /home/schaffer/digitalcollections.union.edu/vendor/laminas/laminas-mvc/src/Application.php(331): Laminas\EventManager\EventManager->triggerEventUntil(Object(Closure), Object(Laminas\Mvc\MvcEvent))

45 /home/schaffer/digitalcollections.union.edu/index.php(21): Laminas\Mvc\Application->run()

46 {main}

Expected behavior

The ability to delete an item.

Screenshots If applicable, add screenshots to help explain your problem.

Additional context Add any other context about the problem here.

ivyrze commented 1 year ago

It's not just you – I'm getting this error as well when uploading!

jaredhowland commented 1 year ago

@CSSSchaffer Did the latest update @jonfackrell pushed fix this issue too?