symfony/symfony

`symfony/psr-http-message-bridge` version conflict

cleptric opened this issue · 9 comments

Symfony version(s) affected

6.3

Description

With #51100, symfony/psr-http-message-bridge was moved into this repo.

What is the update strategy for packages that required this package before?

How to reproduce

When installing the Sentry Symfony SDK, we now run into issues resolving composer dependencies

  Problem 1
    - Root composer.json requires sentry/sentry-symfony ^4.9 -> satisfiable by sentry/sentry-symfony[4.9.0, 4.9.1, 4.9.2].
    - sentry/sentry-symfony[4.9.0, ..., 4.9.2] require symfony/psr-http-message-bridge ^1.2||^2.0 -> found symfony/psr-http-message-bridge[v1.2.0, v1.3.0, v2.0.0, ..., v2.3.1] but these were not loaded, likely because it conflicts with another require.

Possible Solution

No response

Additional Context

No response

stof commented

A composer resolution conflict without the composer.json is not enough to help you. (if this is a require command, we would need both the composer.json and composer.lock from before the run as well as the exact command being run)

xabbuh commented

I can install everything correctly with that composer.json file.

stof commented

@cleptric this composer.json is clearly not the one causing the error as the error message says Root composer.json requires sentry/sentry-symfony ^4.9

Sorry, try this one https://github.com/cleptric/symfony/blob/main/composer.json

With that file, composer install successfully installs all packages at first, but then apparently Flex kicks in and forbids all version of the bridge.

# composer install
No composer.lock file present. Updating dependencies to latest instead of installing from lock file. See https://getcomposer.org/install for more information.
Loading composer repositories with package information
Info from https://repo.packagist.org: #StandWithUkraine
Updating dependencies
Lock file operations: 150 installs, 0 updates, 0 removals
  - Locking clue/stream-filter (v1.6.0)
  - Locking doctrine/annotations (1.14.3)
  - Locking doctrine/cache (2.2.0)
  - Locking doctrine/collections (2.1.3)
  - Locking doctrine/common (3.4.3)
  - Locking doctrine/dbal (3.6.5)
  - Locking doctrine/deprecations (v1.1.1)
  - Locking doctrine/doctrine-bundle (2.10.1)
  - Locking doctrine/doctrine-migrations-bundle (3.2.4)
  - Locking doctrine/event-manager (2.0.0)
  - Locking doctrine/inflector (2.0.8)
  - Locking doctrine/instantiator (2.0.0)
  - Locking doctrine/lexer (2.1.0)
  - Locking doctrine/migrations (3.6.0)
  - Locking doctrine/orm (2.15.4)
  - Locking doctrine/persistence (3.2.0)
  - Locking doctrine/sql-formatter (1.1.3)
  - Locking egulias/email-validator (4.0.1)
  - Locking friendsofphp/proxy-manager-lts (v1.0.16)
  - Locking guzzlehttp/promises (2.0.0)
  - Locking guzzlehttp/psr7 (2.5.0)
  - Locking http-interop/http-factory-guzzle (1.2.0)
  - Locking jean85/pretty-package-versions (2.0.5)
  - Locking laminas/laminas-code (4.11.0)
  - Locking masterminds/html5 (2.8.1)
  - Locking monolog/monolog (3.4.0)
  - Locking myclabs/deep-copy (1.11.1)
  - Locking nelmio/cors-bundle (2.3.1)
  - Locking nikic/php-parser (v4.16.0)
  - Locking phar-io/manifest (2.0.3)
  - Locking phar-io/version (3.2.1)
  - Locking php-http/client-common (2.7.0)
  - Locking php-http/discovery (1.19.1)
  - Locking php-http/httplug (2.4.0)
  - Locking php-http/message (1.16.0)
  - Locking php-http/message-factory (1.1.0)
  - Locking php-http/promise (1.1.0)
  - Locking phpdocumentor/reflection-common (2.2.0)
  - Locking phpdocumentor/reflection-docblock (5.3.0)
  - Locking phpdocumentor/type-resolver (1.7.2)
  - Locking phpstan/phpdoc-parser (1.23.0)
  - Locking phpunit/php-code-coverage (9.2.27)
  - Locking phpunit/php-file-iterator (3.0.6)
  - Locking phpunit/php-invoker (3.1.1)
  - Locking phpunit/php-text-template (2.0.4)
  - Locking phpunit/php-timer (5.0.3)
  - Locking phpunit/phpunit (9.6.10)
  - Locking psr/cache (3.0.0)
  - Locking psr/clock (1.0.0)
  - Locking psr/container (2.0.2)
  - Locking psr/event-dispatcher (1.0.0)
  - Locking psr/http-client (1.0.2)
  - Locking psr/http-factory (1.0.2)
  - Locking psr/http-message (2.0)
  - Locking psr/link (2.0.1)
  - Locking psr/log (3.0.0)
  - Locking ralouphie/getallheaders (3.0.3)
  - Locking sebastian/cli-parser (1.0.1)
  - Locking sebastian/code-unit (1.0.8)
  - Locking sebastian/code-unit-reverse-lookup (2.0.3)
  - Locking sebastian/comparator (4.0.8)
  - Locking sebastian/complexity (2.0.2)
  - Locking sebastian/diff (4.0.5)
  - Locking sebastian/environment (5.1.5)
  - Locking sebastian/exporter (4.0.5)
  - Locking sebastian/global-state (5.0.5)
  - Locking sebastian/lines-of-code (1.0.3)
  - Locking sebastian/object-enumerator (4.0.4)
  - Locking sebastian/object-reflector (2.0.4)
  - Locking sebastian/recursion-context (4.0.5)
  - Locking sebastian/resource-operations (3.0.3)
  - Locking sebastian/type (3.2.1)
  - Locking sebastian/version (3.0.2)
  - Locking sentry/sdk (3.5.0)
  - Locking sentry/sentry (3.20.1)
  - Locking sentry/sentry-symfony (dev-fix-user-context-filling ecf154b)
  - Locking symfony/apache-pack (v1.0.1)
  - Locking symfony/asset (v6.3.0)
  - Locking symfony/browser-kit (v6.3.2)
  - Locking symfony/cache (v6.3.2)
  - Locking symfony/cache-contracts (v3.3.0)
  - Locking symfony/clock (v6.3.1)
  - Locking symfony/config (v6.3.2)
  - Locking symfony/console (v6.3.2)
  - Locking symfony/css-selector (v6.3.2)
  - Locking symfony/debug-bundle (v6.3.2)
  - Locking symfony/dependency-injection (v6.3.2)
  - Locking symfony/deprecation-contracts (v3.3.0)
  - Locking symfony/doctrine-bridge (v6.3.2)
  - Locking symfony/doctrine-messenger (v6.3.1)
  - Locking symfony/dom-crawler (v6.3.1)
  - Locking symfony/dotenv (v6.3.0)
  - Locking symfony/error-handler (v6.3.2)
  - Locking symfony/event-dispatcher (v6.3.2)
  - Locking symfony/event-dispatcher-contracts (v3.3.0)
  - Locking symfony/expression-language (v6.3.0)
  - Locking symfony/filesystem (v6.3.1)
  - Locking symfony/finder (v6.3.3)
  - Locking symfony/flex (v2.3.1)
  - Locking symfony/form (v6.3.2)
  - Locking symfony/framework-bundle (v6.3.2)
  - Locking symfony/http-client (v6.3.2)
  - Locking symfony/http-client-contracts (v3.3.0)
  - Locking symfony/http-foundation (v6.3.2)
  - Locking symfony/http-kernel (v6.3.3)
  - Locking symfony/intl (v6.3.2)
  - Locking symfony/mailer (v6.3.0)
  - Locking symfony/maker-bundle (v1.50.0)
  - Locking symfony/messenger (v6.3.3)
  - Locking symfony/mime (v6.3.3)
  - Locking symfony/monolog-bridge (v6.3.1)
  - Locking symfony/monolog-bundle (v3.8.0)
  - Locking symfony/notifier (v6.3.0)
  - Locking symfony/options-resolver (v6.3.0)
  - Locking symfony/password-hasher (v6.3.0)
  - Locking symfony/phpunit-bridge (v6.3.2)
  - Locking symfony/polyfill-intl-grapheme (v1.27.0)
  - Locking symfony/polyfill-intl-icu (v1.27.0)
  - Locking symfony/polyfill-intl-idn (v1.27.0)
  - Locking symfony/polyfill-intl-normalizer (v1.27.0)
  - Locking symfony/polyfill-mbstring (v1.27.0)
  - Locking symfony/polyfill-php83 (v1.27.0)
  - Locking symfony/process (v6.3.2)
  - Locking symfony/property-access (v6.3.2)
  - Locking symfony/property-info (v6.3.0)
  - Locking symfony/proxy-manager-bridge (v6.3.0)
  - Locking symfony/psr-http-message-bridge (v2.3.1)
  - Locking symfony/routing (v6.3.3)
  - Locking symfony/runtime (v6.3.2)
  - Locking symfony/security-bundle (v6.3.3)
  - Locking symfony/security-core (v6.3.3)
  - Locking symfony/security-csrf (v6.3.2)
  - Locking symfony/security-http (v6.3.2)
  - Locking symfony/serializer (v6.3.3)
  - Locking symfony/service-contracts (v3.3.0)
  - Locking symfony/stopwatch (v6.3.0)
  - Locking symfony/string (v6.3.2)
  - Locking symfony/translation (v6.3.3)
  - Locking symfony/translation-contracts (v3.3.0)
  - Locking symfony/twig-bridge (v6.3.2)
  - Locking symfony/twig-bundle (v6.3.0)
  - Locking symfony/validator (v6.3.2)
  - Locking symfony/var-dumper (v6.3.3)
  - Locking symfony/var-exporter (v6.3.2)
  - Locking symfony/web-link (v6.3.0)
  - Locking symfony/yaml (v6.3.3)
  - Locking theseer/tokenizer (1.2.1)
  - Locking twig/extra-bundle (v3.7.0)
  - Locking twig/twig (v3.7.0)
  - Locking webmozart/assert (1.11.0)
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 150 installs, 0 updates, 0 removals
  - Downloading symfony/flex (v2.3.1)
  - Downloading symfony/runtime (v6.3.2)
  - Downloading symfony/routing (v6.3.3)
  - Downloading symfony/http-foundation (v6.3.2)
  - Downloading symfony/event-dispatcher (v6.3.2)
  - Downloading symfony/var-dumper (v6.3.3)
  - Downloading symfony/error-handler (v6.3.2)
  - Downloading symfony/http-kernel (v6.3.3)
  - Downloading symfony/finder (v6.3.3)
  - Downloading symfony/var-exporter (v6.3.2)
  - Downloading symfony/dependency-injection (v6.3.2)
  - Downloading symfony/config (v6.3.2)
  - Downloading symfony/cache (v6.3.2)
  - Downloading symfony/framework-bundle (v6.3.2)
  - Downloading symfony/string (v6.3.2)
  - Downloading symfony/console (v6.3.2)
  - Downloading doctrine/migrations (3.6.0)
  - Downloading symfony/doctrine-bridge (v6.3.2)
  - Downloading http-interop/http-factory-guzzle (1.2.0)
  - Downloading symfony/security-core (v6.3.3)
  - Downloading symfony/property-access (v6.3.2)
  - Downloading symfony/security-http (v6.3.2)
  - Downloading symfony/psr-http-message-bridge (v2.3.1)
  - Downloading symfony/http-client (v6.3.2)
  - Downloading jean85/pretty-package-versions (2.0.5)
  - Downloading sentry/sentry (3.20.1)
  - Downloading sentry/sentry-symfony (dev-fix-user-context-filling ecf154b)
  - Downloading symfony/apache-pack (v1.0.1)
  - Downloading masterminds/html5 (2.8.1)
  - Downloading symfony/browser-kit (v6.3.2)
  - Downloading symfony/css-selector (v6.3.2)
  - Downloading symfony/twig-bridge (v6.3.2)
  - Downloading symfony/debug-bundle (v6.3.2)
  - Downloading symfony/messenger (v6.3.3)
  - Downloading symfony/doctrine-messenger (v6.3.1)
  - Downloading symfony/dotenv (v6.3.0)
  - Downloading symfony/polyfill-intl-icu (v1.27.0)
  - Downloading symfony/form (v6.3.2)
  - Downloading symfony/intl (v6.3.2)
  - Downloading symfony/mime (v6.3.3)
  - Downloading symfony/mailer (v6.3.0)
  - Downloading symfony/process (v6.3.2)
  - Downloading symfony/maker-bundle (v1.50.0)
  - Downloading symfony/notifier (v6.3.0)
  - Downloading symfony/phpunit-bridge (v6.3.2)
  - Downloading symfony/security-csrf (v6.3.2)
  - Downloading symfony/security-bundle (v6.3.3)
  - Downloading symfony/serializer (v6.3.3)
  - Downloading symfony/translation (v6.3.3)
  - Downloading symfony/validator (v6.3.2)
  - Downloading psr/link (2.0.1)
  - Downloading symfony/yaml (v6.3.3)
  - Installing php-http/discovery (1.19.1): Extracting archive
  - Installing symfony/flex (v2.3.1): Extracting archive
  - Installing symfony/runtime (v6.3.2): Extracting archive
  - Installing psr/cache (3.0.0): Extracting archive
  - Installing doctrine/deprecations (v1.1.1): Extracting archive
  - Installing doctrine/lexer (2.1.0): Extracting archive
  - Installing doctrine/annotations (1.14.3): Extracting archive
  - Installing symfony/deprecation-contracts (v3.3.0): Extracting archive
  - Installing symfony/routing (v6.3.3): Extracting archive
  - Installing symfony/polyfill-mbstring (v1.27.0): Extracting archive
  - Installing symfony/polyfill-php83 (v1.27.0): Extracting archive
  - Installing symfony/http-foundation (v6.3.2): Extracting archive
  - Installing psr/event-dispatcher (1.0.0): Extracting archive
  - Installing symfony/event-dispatcher-contracts (v3.3.0): Extracting archive
  - Installing symfony/event-dispatcher (v6.3.2): Extracting archive
  - Installing symfony/var-dumper (v6.3.3): Extracting archive
  - Installing psr/log (3.0.0): Extracting archive
  - Installing symfony/error-handler (v6.3.2): Extracting archive
  - Installing symfony/http-kernel (v6.3.3): Extracting archive
  - Installing symfony/finder (v6.3.3): Extracting archive
  - Installing symfony/filesystem (v6.3.1): Extracting archive
  - Installing symfony/var-exporter (v6.3.2): Extracting archive
  - Installing psr/container (2.0.2): Extracting archive
  - Installing symfony/service-contracts (v3.3.0): Extracting archive
  - Installing symfony/dependency-injection (v6.3.2): Extracting archive
  - Installing symfony/config (v6.3.2): Extracting archive
  - Installing symfony/cache-contracts (v3.3.0): Extracting archive
  - Installing symfony/cache (v6.3.2): Extracting archive
  - Installing symfony/framework-bundle (v6.3.2): Extracting archive
  - Installing symfony/stopwatch (v6.3.0): Extracting archive
  - Installing symfony/polyfill-intl-normalizer (v1.27.0): Extracting archive
  - Installing symfony/polyfill-intl-grapheme (v1.27.0): Extracting archive
  - Installing symfony/string (v6.3.2): Extracting archive
  - Installing symfony/console (v6.3.2): Extracting archive
  - Installing doctrine/event-manager (2.0.0): Extracting archive
  - Installing doctrine/cache (2.2.0): Extracting archive
  - Installing doctrine/dbal (3.6.5): Extracting archive
  - Installing doctrine/migrations (3.6.0): Extracting archive
  - Installing doctrine/persistence (3.2.0): Extracting archive
  - Installing symfony/doctrine-bridge (v6.3.2): Extracting archive
  - Installing doctrine/sql-formatter (1.1.3): Extracting archive
  - Installing doctrine/doctrine-bundle (2.10.1): Extracting archive
  - Installing doctrine/doctrine-migrations-bundle (3.2.4): Extracting archive
  - Installing doctrine/instantiator (2.0.0): Extracting archive
  - Installing doctrine/inflector (2.0.8): Extracting archive
  - Installing doctrine/common (3.4.3): Extracting archive
  - Installing doctrine/collections (2.1.3): Extracting archive
  - Installing doctrine/orm (2.15.4): Extracting archive
  - Installing guzzlehttp/promises (2.0.0): Extracting archive
  - Installing psr/http-message (2.0): Extracting archive
  - Installing psr/http-factory (1.0.2): Extracting archive
  - Installing ralouphie/getallheaders (3.0.3): Extracting archive
  - Installing guzzlehttp/psr7 (2.5.0): Extracting archive
  - Installing http-interop/http-factory-guzzle (1.2.0): Extracting archive
  - Installing laminas/laminas-code (4.11.0): Extracting archive
  - Installing nelmio/cors-bundle (2.3.1): Extracting archive
  - Installing symfony/options-resolver (v6.3.0): Extracting archive
  - Installing psr/http-client (1.0.2): Extracting archive
  - Installing clue/stream-filter (v1.6.0): Extracting archive
  - Installing php-http/message (1.16.0): Extracting archive
  - Installing php-http/promise (1.1.0): Extracting archive
  - Installing php-http/httplug (2.4.0): Extracting archive
  - Installing php-http/client-common (2.7.0): Extracting archive
  - Installing php-http/message-factory (1.1.0): Extracting archive
  - Installing webmozart/assert (1.11.0): Extracting archive
  - Installing phpstan/phpdoc-parser (1.23.0): Extracting archive
  - Installing phpdocumentor/reflection-common (2.2.0): Extracting archive
  - Installing phpdocumentor/type-resolver (1.7.2): Extracting archive
  - Installing phpdocumentor/reflection-docblock (5.3.0): Extracting archive
  - Installing sebastian/version (3.0.2): Extracting archive
  - Installing sebastian/type (3.2.1): Extracting archive
  - Installing sebastian/resource-operations (3.0.3): Extracting archive
  - Installing sebastian/recursion-context (4.0.5): Extracting archive
  - Installing sebastian/object-reflector (2.0.4): Extracting archive
  - Installing sebastian/object-enumerator (4.0.4): Extracting archive
  - Installing sebastian/global-state (5.0.5): Extracting archive
  - Installing sebastian/exporter (4.0.5): Extracting archive
  - Installing sebastian/environment (5.1.5): Extracting archive
  - Installing sebastian/diff (4.0.5): Extracting archive
  - Installing sebastian/comparator (4.0.8): Extracting archive
  - Installing sebastian/code-unit (1.0.8): Extracting archive
  - Installing sebastian/cli-parser (1.0.1): Extracting archive
  - Installing phpunit/php-timer (5.0.3): Extracting archive
  - Installing phpunit/php-text-template (2.0.4): Extracting archive
  - Installing phpunit/php-invoker (3.1.1): Extracting archive
  - Installing phpunit/php-file-iterator (3.0.6): Extracting archive
  - Installing theseer/tokenizer (1.2.1): Extracting archive
  - Installing nikic/php-parser (v4.16.0): Extracting archive
  - Installing sebastian/lines-of-code (1.0.3): Extracting archive
  - Installing sebastian/complexity (2.0.2): Extracting archive
  - Installing sebastian/code-unit-reverse-lookup (2.0.3): Extracting archive
  - Installing phpunit/php-code-coverage (9.2.27): Extracting archive
  - Installing phar-io/version (3.2.1): Extracting archive
  - Installing phar-io/manifest (2.0.3): Extracting archive
  - Installing myclabs/deep-copy (1.11.1): Extracting archive
  - Installing phpunit/phpunit (9.6.10): Extracting archive
  - Installing psr/clock (1.0.0): Extracting archive
  - Installing symfony/password-hasher (v6.3.0): Extracting archive
  - Installing symfony/security-core (v6.3.3): Extracting archive
  - Installing symfony/property-info (v6.3.0): Extracting archive
  - Installing symfony/property-access (v6.3.2): Extracting archive
  - Installing symfony/security-http (v6.3.2): Extracting archive
  - Installing symfony/psr-http-message-bridge (v2.3.1): Extracting archive
  - Installing symfony/http-client-contracts (v3.3.0): Extracting archive
  - Installing symfony/http-client (v6.3.2): Extracting archive
  - Installing jean85/pretty-package-versions (2.0.5): Extracting archive
  - Installing sentry/sentry (3.20.1): Extracting archive
  - Installing sentry/sdk (3.5.0)
  - Installing sentry/sentry-symfony (dev-fix-user-context-filling ecf154b): Extracting archive
  - Installing symfony/apache-pack (v1.0.1): Extracting archive
  - Installing symfony/asset (v6.3.0): Extracting archive
  - Installing masterminds/html5 (2.8.1): Extracting archive
  - Installing symfony/dom-crawler (v6.3.1): Extracting archive
  - Installing symfony/browser-kit (v6.3.2): Extracting archive
  - Installing symfony/css-selector (v6.3.2): Extracting archive
  - Installing twig/twig (v3.7.0): Extracting archive
  - Installing symfony/translation-contracts (v3.3.0): Extracting archive
  - Installing symfony/twig-bridge (v6.3.2): Extracting archive
  - Installing symfony/debug-bundle (v6.3.2): Extracting archive
  - Installing symfony/clock (v6.3.1): Extracting archive
  - Installing symfony/messenger (v6.3.3): Extracting archive
  - Installing symfony/doctrine-messenger (v6.3.1): Extracting archive
  - Installing symfony/dotenv (v6.3.0): Extracting archive
  - Installing symfony/expression-language (v6.3.0): Extracting archive
  - Installing symfony/polyfill-intl-icu (v1.27.0): Extracting archive
  - Installing symfony/form (v6.3.2): Extracting archive
  - Installing symfony/intl (v6.3.2): Extracting archive
  - Installing symfony/polyfill-intl-idn (v1.27.0): Extracting archive
  - Installing symfony/mime (v6.3.3): Extracting archive
  - Installing egulias/email-validator (4.0.1): Extracting archive
  - Installing symfony/mailer (v6.3.0): Extracting archive
  - Installing symfony/process (v6.3.2): Extracting archive
  - Installing symfony/maker-bundle (v1.50.0): Extracting archive
  - Installing monolog/monolog (3.4.0): Extracting archive
  - Installing symfony/monolog-bridge (v6.3.1): Extracting archive
  - Installing symfony/monolog-bundle (v3.8.0): Extracting archive
  - Installing symfony/notifier (v6.3.0): Extracting archive
  - Installing symfony/phpunit-bridge (v6.3.2): Extracting archive
  - Installing friendsofphp/proxy-manager-lts (v1.0.16): Extracting archive
  - Installing symfony/proxy-manager-bridge (v6.3.0): Extracting archive
  - Installing symfony/security-csrf (v6.3.2): Extracting archive
  - Installing symfony/security-bundle (v6.3.3): Extracting archive
  - Installing symfony/serializer (v6.3.3): Extracting archive
  - Installing symfony/translation (v6.3.3): Extracting archive
  - Installing symfony/validator (v6.3.2): Extracting archive
  - Installing psr/link (2.0.1): Extracting archive
  - Installing symfony/web-link (v6.3.0): Extracting archive
  - Installing symfony/yaml (v6.3.3): Extracting archive
  - Installing symfony/twig-bundle (v6.3.0): Extracting archive
  - Installing twig/extra-bundle (v3.7.0): Extracting archive
Package php-http/message-factory is abandoned, you should avoid using it. Use psr/http-factory instead.
Generating optimized autoload files
116 packages you are using are looking for funding.
Use the `composer fund` command to find out more!

Run composer recipes at any time to see the status of your Symfony recipes.

Loading composer repositories with package information
Restricting packages listed in "symfony/symfony" to "^6.3"
Updating dependencies
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - Root composer.json requires sentry/sentry-symfony dev-fix-user-context-filling -> satisfiable by sentry/sentry-symfony[dev-fix-user-context-filling].
    - sentry/sentry-symfony dev-fix-user-context-filling requires symfony/psr-http-message-bridge ^1.2||^2.0 -> found symfony/psr-http-message-bridge[v1.2.0, v1.3.0, v2.0.0, ..., v2.3.1] but these were not loaded, likely because it conflicts with another require.

Use the option --with-all-dependencies (-W) to allow upgrades, downgrades and removals for packages currently locked to specific versions.

You can also try running composer update. I couldn't commit an updated composer.lock, as the update fails as well.

Here's a minimal composer.json that fails:

{
    "type": "project",
    "license": "MIT",
    "minimum-stability": "stable",
    "require": {
        "php": ">=8.1",
        "sentry/sentry-symfony": "^4.9",
        "symfony/flex": "^2.3.1"
    },
    "extra": {
        "symfony": {
            "require": "^6.3"
        }
    },
    "config": {
        "allow-plugins": {
            "symfony/flex": true,
            "php-http/discovery": true
        }
    }
}

If I add "symfony/psr-http-message-bridge": "^2.3" to the require section, the error is gone.

xabbuh commented

I wonder if the PSR-7 bridge should really follow the usual Symfony release cycle. Otherwise, I suggest to not mark it as replaced by the symfony/symfony package (see #51194).