ChristophWurst / nextcloud_sentry

Sentry integration for Nextcloud
GNU Affero General Public License v3.0
36 stars 5 forks source link

Declaration of Aws\S3\ObjectCopier::promise() must be compatible with GuzzleHttp\Promise\PromisorInterface::promise() #629

Closed tcitworld closed 11 months ago

tcitworld commented 11 months ago

Steps to reproduce

  1. Install both richdocuments and nextcloud_sentry
  2. Try to save (or autosave) a document
  3. Document can't be saved

Server configuration

Operating system: Debian

Web server: nginx

Database: PostgreSQL

PHP version: 8.1

Version: (see admin page) 26.0.8

Updated from an older version or fresh install:

List of activated apps:

richdocuments: 8.0.6
sentry: 8.8.9

Logs

Server log (data/nextcloud.log)
{"reqId":"jKuSceM8SBZ6dMBmaGyn","level":3,"time":"2023-11-17T09:03:05+00:00","remoteAddr":"::ffff:5.9.69.82","user":"admin","app":"PHP","method":"POST","url":"/index.php/apps/richdocuments/wopi/files/288_ocioexg3r5rp/contents?access_token=YRfi4FqMMIGOOFqSPDcH6MX94pGnSZq5&access_token_ttl=1700247682000","message":"Declaration of Aws\\S3\\ObjectCopier::promise() must be compatible with GuzzleHttp\\Promise\\PromisorInterface::promise(): GuzzleHttp\\Promise\\PromiseInterface at /var/www/nc/nextcloud-26.0.8/3rdparty/aws/aws-sdk-php/src/S3/ObjectCopier.php#82","userAgent":"COOLWSD HTTP Agent 23.05.5.4","version":"26.0.8.2","data":{"app":"PHP"}}

Ran find . -name "PromisorInterface.php" into my install folder, returns:

./3rdparty/guzzlehttp/promises/src/PromisorInterface.php
./apps/sentry/vendor/guzzlehttp/promises/src/PromisorInterface.php

So I'm guessing this is very similar to #517. Funny to see it's broken since https://github.com/ChristophWurst/nextcloud_sentry/commit/d650d433d2a83e4506ed2fedd79dc25887600166 and no one reported it. :thinking:

Can we compose the dependencies with Mozart here too? Otherwise just pinning guzzlehttp/promises to 1.x versions should be fine for now.

ChristophWurst commented 11 months ago

Can we compose the dependencies with Mozart here too? Otherwise just pinning guzzlehttp/promises to 1.x versions should be fine for now.

Last time I tried it didn't work well with Guzzle and HTTPlug libraries unfortunately