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:
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.