Repository: shlinkio/shlink (language: php)

Issue:
Shlink 4.4.4 failing to acquire lock with Redis cluster when TLS connection to the Redis cluster is enabled
### Shlink version

4.4.4-roadrunner (arm64)

### PHP version

Official Docker Image

### How do you serve Shlink

Docker image

### Database engine

MariaDB

### Database version

10.11.10

### Current behavior

Hey it's me again!

To keep it short, I'm not going to go over our AWS setup for Shlink again, all the relevant stuff can be read from my previous issue: https://github.com/shlinkio/shlink/issues/2366

In our dev environment, I upgraded Shlink from version 4.3.1 to version 4.4.4 and re-enabled TLS for the MariaDB connection which is, in my opinion, the most important feature of the 4.4.x branch and it seems to work like a charm, great.

I tried to break our Redis cluster in multiple ways, and with version 4.4.4 - unlike with version 4.4.0 - I didn't see any issues if the connection from Shlink to the Redis cluster is disrupted when the connection is unencrypted, which is good!

However, I wanted to try enabling TLS connection from Shlink to the Redis cluster, so that every possible connection between any dependency would then be encrypted in our Shlink setup. And then some problems started to show up.

The connection to the Redis cluster is made by setting the following envvar:
```
REDIS_SERVERS=tls://insertusernamehere:insertpasswordhere@nodename-redacted-redis-cluster-shlink-0001-001.abcdef.0001.memorydb.eu-north-1.amazonaws.com:6379,tls://insertusernamehere:insertpasswordhere@nodename-redacted-redis-cluster-shlink-0001-002.abcdef.0001.memorydb.eu-north-1.amazonaws.com:6379,tls://insertusernamehere:insertpasswordhere@nodename-redacted-redis-cluster-shlink-0001-003.abcdef.0001.memorydb.eu-north-1.amazonaws.com:6379
```

The Shlink Fargate tasks start up and keep running and serve traffic to users. However, there are some deprecation warnings in the log that DID NOT show up when the Redis cluster connection was unencrypted:

```
Initializing database if needed... [Running "/usr/local/bin/php bin/cli db:create"]   RUN  '/usr/local/bin/php' 'bin/cli' 'db:create'
  OUT  
  OUT  Deprecated: Calling stream_context_set_option() with 2 arguments is deprecated, use stream_context_set_options() instead in /etc/shlink/vendor/predis/predis/src/Connection/StreamConnection.php on line 214
  OUT  
  OUT  Deprecated: Calling stream_context_set_option() with 2 arguments is deprecated, use stream_context_set_options() instead in /etc/shlink/vendor/predis/predis/src/Connection/StreamConnection.php on line 214
  OUT  
  OUT   [OK] Database already exists. Run "db:migrate" command to make sure it is up to
  OUT        date.                                                                     
  OUT  
  OUT  
  RES  Command ran successfully
 Success!
Updating database... [Running "/usr/local/bin/php bin/cli db:migrate"]   RUN  '/usr/local/bin/php' 'bin/cli' 'db:migrate'
  OUT  
  OUT  Deprecated: Calling stream_context_set_option() with 2 arguments is deprecated, use stream_context_set_options() instead in /etc/shlink/vendor/predis/predis/src/Connection/StreamConnection.php on line 214
  OUT  
  OUT  Deprecated: Calling stream_context_set_option() with 2 arguments is deprecated, use stream_context_set_options() instead in /etc/shlink/vendor/predis/predis/src/Connection/StreamConnection.php on line 214
  OUT  Migrating database...
  OUT  
  ERR    RUN  '/usr/local/bin/php' 'vendor/doctrine/migrations/bin/doctrine-migrations.php' 'migrations:migrate' '--no-interaction'
  ERR    OUT  
  ERR    OUT   [WARNING] You have 1 previously executed migrations in the database that are   
  ERR    OUT             not registered migrations.                                           
  ERR    OUT  
  ERR    OUT   >> 2025-02-17 08:01:56 (ShlinkMigrations\Version20230103105343)
  ERR    OUT  
  ERR    OUT   [OK] Successfully migrated to version: ShlinkMigrations\Version20250215100756  
  ERR    OUT  
  ERR    OUT  
  ERR    OUT  
  ERR    RES  Command ran successfully
  ERR  
  OUT  
  OUT   [OK] Database properly migrated!                                               
  OUT  
  OUT  
  RES  Command ran successfully
 Success!
Generating proxies... [Running "/usr/local/bin/php bin/doctrine orm:generate-proxies"]   RUN  '/usr/local/bin/php' 'bin/doctrine' 'orm:generate-proxies'
  OUT  
  OUT  Deprecated: Calling stream_context_set_option() with 2 arguments is deprecated, use stream_context_set_options() instead in /etc/shlink/vendor/predis/predis/src/Connection/StreamConnection.php on line 214
  OUT  
  OUT  Deprecated: Calling stream_context_set_option() with 2 arguments is deprecated, use stream_context_set_options() instead in /etc/shlink/vendor/predis/predis/src/Connection/StreamConnection.php on line 214
  OUT  
  ERR   Processing entity "Shlinkio\Shlink\Core\Tag\Entity\Tag"
  ERR   Processing entity "Shlinkio\Shlink\Core\Visit\Entity\OrphanVisitsCount"
  ERR   Processing entity "Shlinkio\Shlink\Core\Domain\Entity\Domain"
  ERR   Processing entity "Shlinkio\Shlink\Core\RedirectRule\Entity\ShortUrlRedirectRule"
  ERR   Processing entity "Shlinkio\Shlink\Core\Geolocation\Entity\GeolocationDbUpdate"
  ERR   Processing entity "Shlinkio\Shlink\Core\Visit\Entity\VisitLocation"
  ERR   Processing entity "Shlinkio\Shlink\Core\RedirectRule\Entity\RedirectCondition"
  ERR   Processing entity "Shlinkio\Shlink\Core\Visit\Entity\Visit"
  ERR   Processing entity "Shlinkio\Shlink\Core\ShortUrl\Entity\ShortUrl"
  ERR   Processing entity "Shlinkio\Shlink\Core\Visit\Entity\ShortUrlVisitsCount"
  ERR   Processing entity "Shlinkio\Shlink\Rest\Entity\ApiKey"
  ERR   Processing entity "Shlinkio\Shlink\Rest\Entity\ApiKeyRole"
  ERR  
  ERR   Proxy classes generated to "/etc/shlink/data/proxies"
  ERR  
  RES  Command ran successfully
 Success!
Clearing entities cache... [Running "/usr/local/bin/php bin/doctrine orm:clear-cache:metadata"]   RUN  '/usr/local/bin/php' 'bin/doctrine' 'orm:clear-cache:metadata'
  ERR  
  ERR   // Clearing all Metadata cache entries                                         
  ERR  
  ERR  
  OUT  
  OUT  Deprecated: Calling stream_context_set_option() with 2 arguments is deprecated, use stream_context_set_options() instead in /etc/shlink/vendor/predis/predis/src/Connection/StreamConnection.php on line 214
  OUT  
  OUT  Deprecated: Calling stream_context_set_option() with 2 arguments is deprecated, use stream_context_set_options() instead in /etc/shlink/vendor/predis/predis/src/Connection/StreamConnection.php on line 214
  OUT  
  ERR   [OK] Successfully deleted cache entries.                                       
  ERR  
  ERR  
  RES  Command ran successfully
 Success!
Creating first API key... [Running "/usr/local/bin/php bin/cli api-key:initial <REDACTED>"]   RUN  '/usr/local/bin/php' 'bin/cli' 'api-key:initial' '<REDACTED>'
  OUT  
  OUT  Deprecated: Calling stream_context_set_option() with 2 arguments is deprecated, use stream_context_set_options() instead in /etc/shlink/vendor/predis/predis/src/Connection/StreamConnection.php on line 214
  OUT  
  OUT  Deprecated: Calling stream_context_set_option() with 2 arguments is deprecated, use stream_context_set_options() instead in /etc/shlink/vendor/predis/predis/src/Connection/StreamConnection.php on line 214
  OUT  Other API keys already exist. Initial API key creation skipped.
  OUT  
  RES  Command ran successfully
 Success!
 
Deprecated: Calling stream_context_set_option() with 2 arguments is deprecated, use stream_context_set_options() instead in /etc/shlink/vendor/predis/predis/src/Connection/StreamConnection.php on line 214
Deprecated: Calling stream_context_set_option() with 2 arguments is deprecated, use stream_context_set_options() instead in /etc/shlink/vendor/predis/predis/src/Connection/StreamConnection.php on line 214
Other API keys already exist. Initial API key creation skipped.
{
    "level": "debug",
    "ts": 1740129278769502014,
    "logger": "rpc",
    "msg": "plugin was started",
    "address": "tcp://127.0.0.1:6001",
    "list of the plugins with RPC methods:": [
        "lock",
        "app",
        "informer",
        "resetter",
        "jobs"
    ]
}
2025-02-21T09:14:38+0000	DEBUG	jobs        	initializing driver	
{
    "pipeline": "shlink",
    "driver": "memory"
}
2025-02-21T09:14:38+0000	DEBUG	jobs        	driver ready	
{
    "pipeline": "shlink",
    "driver": "memory",
    "start": "2025-02-21T09:14:38+0000",
    "elapsed": 0
}
{
    "level": "debug",
    "ts": 1740129278770214083,
    "logger": "memory",
    "msg": "pipeline was started",
    "driver": "memory",
    "pipeline": "shlink",
    "start": "2025-02-21 09:14:38.770210768 +0000 UTC",
    "elapsed": "9.559µs"
}
[INFO] RoadRunner server started; version: 2024.3.4, buildtime: 2025-02-13T19:36:49+0000
[INFO] sdnotify: not notified
```

Okay, so they're not exactly errors per se and the start up sequence finished so I'm not that concerned at this point.

Now, I try to create a new short link without tags. It gets created fine.
Next, I try to create a new short link WITH a tag. The Shlink Web Client throws "An unknown error occurred", so I'm facing the same problem that happened with version 4.4.0 in my previous issue (and to be clear, with 4.4.0 the Redis cluster connection was unencrypted).

But, this time the errors in Shlink logs are completely different than with the 4.4.0, and they are actually the same deprecation exceptions that were shown in Shlink startup:
```
2025-02-21T09:17:27+0000	INFO	server      	[2025-02-21T11:17:27.803008+02:00] [91b95fbd-b4b6-432a-a03c-d1993811ee03] Shlink.NOTICE - Failed to acquire the "444roadrunner:tag_tlsredis" lock.
2025-02-21T09:17:27+0000	INFO	server      	[2025-02-21T11:17:27.808872+02:00] [91b95fbd-b4b6-432a-a03c-d1993811ee03] Shlink.ERROR - ErrorException: Calling stream_context_set_option() with 2 arguments is deprecated, use stream_context_set_options() instead in /etc/shlink/vendor/predis/predis/src/Connection/StreamConnection.php:214
Stack trace:
#0 [internal function]: Mezzio\ProblemDetails\ProblemDetailsMiddleware::{closure:Mezzio\ProblemDetails\ProblemDetailsMiddleware::createErrorHandler():110}(8192, 'Calling stream_...', '/etc/shlink/ven...', 214)
#1 /etc/shlink/vendor/predis/predis/src/Connection/StreamConnection.php(214): stream_context_set_option(Resource id #1107, Array)
#2 /etc/shlink/vendor/predis/predis/src/Connection/StreamConnection.php(87): Predis\Connection\StreamConnection->tlsStreamInitializer(Object(Predis\Connection\Parameters))
#3 /etc/shlink/vendor/predis/predis/src/Connection/AbstractConnection.php(85): Predis\Connection\StreamConnection->createResource()
#4 /etc/shlink/vendor/predis/predis/src/Connection/StreamConnection.php(230): Predis\Connection\AbstractConnection->connect()
#5 /etc/shlink/vendor/predis/predis/src/Connection/AbstractConnection.php(169): Predis\Connection\StreamConnection->connect()
#6 /etc/shlink/vendor/predis/predis/src/Connection/StreamConnection.php(265): Predis\Connection\AbstractConnection->getResource()
#7 /etc/shlink/vendor/predis/predis/src/Connection/StreamConnection.php(372): Predis\Connection\StreamConnection->write('*2\r\n$7\r\nCLUSTER...')
#8 /etc/shlink/vendor/predis/predis/src/Connection/AbstractConnection.php(122): Predis\Connection\StreamConnection->writeRequest(Object(Predis\Command\RawCommand))
#9 /etc/shlink/vendor/predis/predis/src/Connection/Cluster/RedisCluster.php(244): Predis\Connection\AbstractConnection->executeCommand(Object(Predis\Command\RawCommand))
#10 /etc/shlink/vendor/predis/predis/src/Connection/Cluster/RedisCluster.php(284): Predis\Connection\Cluster\RedisCluster->queryClusterNodeForSlotMap(Object(Predis\Connection\StreamConnection))
#11 /etc/shlink/vendor/predis/predis/src/Connection/Cluster/RedisCluster.php(560): Predis\Connection\Cluster\RedisCluster->askSlotMap()
#12 /etc/shlink/vendor/predis/predis/src/Connection/Cluster/RedisCluster.php(591): Predis\Connection\Cluster\RedisCluster->retryCommandOnFailure(Object(Predis\Command\Redis\EVAL_), 'executeCommand')
#13 /etc/shlink/vendor/predis/predis/src/Client.php(381): Predis\Connection\Cluster\RedisCluster->executeCommand(Object(Predis\Command\Redis\EVAL_))
#14 /etc/shlink/vendor/predis/predis/src/Client.php(335): Predis\Client->executeCommand(Object(Predis\Command\Redis\EVAL_))
#15 /etc/shlink/vendor/symfony/lock/Store/RedisStore.php(254): Predis\Client->__call('eval', Array)
#16 /etc/shlink/vendor/symfony/lock/Store/RedisStore.php(283): Symfony\Component\Lock\Store\RedisStore->evaluate('\n              ...', 'symfony_check_s...', Array)
#17 /etc/shlink/vendor/symfony/lock/Store/RedisStore.php(59): Symfony\Component\Lock\Store\RedisStore->getNowCode()
#18 /etc/shlink/vendor/shlinkio/shlink-common/src/Lock/NamespacedStore.php(29): Symfony\Component\Lock\Store\RedisStore->save(Object(Symfony\Component\Lock\Key))
#19 /etc/shlink/vendor/symfony/lock/Lock.php(75): Shlinkio\Shlink\Common\Lock\NamespacedStore->save(Object(Symfony\Component\Lock\Key))
#20 /etc/shlink/module/Core/src/ShortUrl/Resolver/PersistenceShortUrlRelationResolver.php(110): Symfony\Component\Lock\Lock->acquire(true)
#21 /etc/shlink/module/Core/src/ShortUrl/Resolver/PersistenceShortUrlRelationResolver.php(80): Shlinkio\Shlink\Core\ShortUrl\Resolver\PersistenceShortUrlRelationResolver->lock(Array, 'tag_tlsredis')
#22 [internal function]: Shlinkio\Shlink\Core\ShortUrl\Resolver\PersistenceShortUrlRelationResolver->{closure:Shlinkio\Shlink\Core\ShortUrl\Resolver\PersistenceShortUrlRelationResolver::resolveTags():79}('tlsredis')
#23 /etc/shlink/module/Core/src/ShortUrl/Resolver/PersistenceShortUrlRelationResolver.php(79): array_map(Object(Closure), Array)
#24 /etc/shlink/module/Core/src/ShortUrl/Entity/ShortUrl.php(99): Shlinkio\Shlink\Core\ShortUrl\Resolver\PersistenceShortUrlRelationResolver->resolveTags(Array)
#25 /etc/shlink/module/Core/src/ShortUrl/UrlShortener.php(47): Shlinkio\Shlink\Core\ShortUrl\Entity\ShortUrl::create(Object(Shlinkio\Shlink\Core\ShortUrl\Model\ShortUrlCreation), Object(Shlinkio\Shlink\Core\ShortUrl\Resolver\PersistenceShortUrlRelationResolver))
#26 /etc/shlink/vendor/doctrine/orm/src/EntityManager.php(183): Shlinkio\Shlink\Core\ShortUrl\UrlShortener->{closure:Shlinkio\Shlink\Core\ShortUrl\UrlShortener::shorten():46}(Object(Doctrine\ORM\EntityManager))
#27 /etc/shlink/vendor/doctrine/orm/src/Decorator/EntityManagerDecorator.php(72): Doctrine\ORM\EntityManager->wrapInTransaction(Object(Closure))
#28 /etc/shlink/module/Core/src/ShortUrl/UrlShortener.php(46): Doctrine\ORM\Decorator\EntityManagerDecorator->wrapInTransaction(Object(Closure))
#29 /etc/shlink/module/Rest/src/Action/ShortUrl/AbstractCreateShortUrlAction.php(29): Shlinkio\Shlink\Core\ShortUrl\UrlShortener->shorten(Object(Shlinkio\Shlink\Core\ShortUrl\Model\ShortUrlCreation))
#30 /etc/shlink/vendor/laminas/laminas-stratigility/src/Middleware/RequestHandlerMiddleware.php(46): Shlinkio\Shlink\Rest\Action\ShortUrl\AbstractCreateShortUrlAction->handle(Object(Laminas\Diactoros\ServerRequest))
#31 /etc/shlink/vendor/mezzio/mezzio/src/Middleware/LazyLoadingMiddleware.php(26): Laminas\Stratigility\Middleware\RequestHandlerMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#32 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(52): Mezzio\Middleware\LazyLoadingMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#33 /etc/shlink/module/Rest/src/Middleware/ShortUrl/DefaultShortCodesLengthMiddleware.php(28): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#34 /etc/shlink/vendor/mezzio/mezzio/src/Middleware/LazyLoadingMiddleware.php(26): Shlinkio\Shlink\Rest\Middleware\ShortUrl\DefaultShortCodesLengthMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#35 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(52): Mezzio\Middleware\LazyLoadingMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#36 /etc/shlink/module/Rest/src/Middleware/ShortUrl/OverrideDomainMiddleware.php(27): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#37 /etc/shlink/vendor/mezzio/mezzio/src/Middleware/LazyLoadingMiddleware.php(26): Shlinkio\Shlink\Rest\Middleware\ShortUrl\OverrideDomainMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#38 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(52): Mezzio\Middleware\LazyLoadingMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#39 /etc/shlink/module/Rest/src/Middleware/ShortUrl/DropDefaultDomainFromRequestMiddleware.php(26): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#40 /etc/shlink/vendor/mezzio/mezzio/src/Middleware/LazyLoadingMiddleware.php(26): Shlinkio\Shlink\Rest\Middleware\ShortUrl\DropDefaultDomainFromRequestMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#41 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(52): Mezzio\Middleware\LazyLoadingMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#42 /etc/shlink/vendor/laminas/laminas-stratigility/src/MiddlewarePipe.php(77): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#43 /etc/shlink/vendor/mezzio/mezzio-router/src/Route.php(79): Laminas\Stratigility\MiddlewarePipe->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#44 /etc/shlink/vendor/mezzio/mezzio-router/src/RouteResult.php(109): Mezzio\Router\Route->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#45 /etc/shlink/vendor/mezzio/mezzio-router/src/Middleware/DispatchMiddleware.php(32): Mezzio\Router\RouteResult->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#46 /etc/shlink/vendor/mezzio/mezzio/src/Middleware/LazyLoadingMiddleware.php(26): Mezzio\Router\Middleware\DispatchMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#47 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(52): Mezzio\Middleware\LazyLoadingMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#48 /etc/shlink/vendor/laminas/laminas-stratigility/src/MiddlewarePipe.php(77): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#49 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(52): Laminas\Stratigility\MiddlewarePipe->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#50 /etc/shlink/vendor/laminas/laminas-stratigility/src/Middleware/PathMiddlewareDecorator.php(122): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#51 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(45): Psr\Http\Server\RequestHandlerInterface@anonymous->handle(Object(Laminas\Diactoros\ServerRequest))
#52 /etc/shlink/module/Rest/src/Middleware/AuthenticationMiddleware.php(52): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#53 /etc/shlink/vendor/mezzio/mezzio/src/Middleware/LazyLoadingMiddleware.php(26): Shlinkio\Shlink\Rest\Middleware\AuthenticationMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#54 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(52): Mezzio\Middleware\LazyLoadingMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#55 /etc/shlink/module/Rest/src/Middleware/BodyParserMiddleware.php(37): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#56 /etc/shlink/vendor/mezzio/mezzio/src/Middleware/LazyLoadingMiddleware.php(26): Shlinkio\Shlink\Rest\Middleware\BodyParserMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#57 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(52): Mezzio\Middleware\LazyLoadingMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#58 /etc/shlink/vendor/mezzio/mezzio-router/src/Middleware/ImplicitOptionsMiddleware.php(75): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#59 /etc/shlink/vendor/mezzio/mezzio/src/Middleware/LazyLoadingMiddleware.php(26): Mezzio\Router\Middleware\ImplicitOptionsMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#60 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(52): Mezzio\Middleware\LazyLoadingMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#61 /etc/shlink/vendor/laminas/laminas-stratigility/src/MiddlewarePipe.php(77): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#62 /etc/shlink/vendor/laminas/laminas-stratigility/src/Middleware/PathMiddlewareDecorator.php(60): Laminas\Stratigility\MiddlewarePipe->process(Object(Laminas\Diactoros\ServerRequest), Object(Psr\Http\Server\RequestHandlerInterface@anonymous))
#63 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(52): Laminas\Stratigility\Middleware\PathMiddlewareDecorator->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#64 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(45): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#65 /etc/shlink/vendor/mezzio/mezzio-router/src/Middleware/ImplicitHeadMiddleware.php(77): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#66 /etc/shlink/vendor/mezzio/mezzio/src/Middleware/LazyLoadingMiddleware.php(26): Mezzio\Router\Middleware\ImplicitHeadMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#67 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(52): Mezzio\Middleware\LazyLoadingMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#68 /etc/shlink/vendor/mezzio/mezzio-router/src/Middleware/RouteMiddleware.php(50): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#69 /etc/shlink/vendor/mezzio/mezzio/src/Middleware/LazyLoadingMiddleware.php(26): Mezzio\Router\Middleware\RouteMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#70 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(52): Mezzio\Middleware\LazyLoadingMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#71 /etc/shlink/vendor/laminas/laminas-stratigility/src/MiddlewarePipe.php(77): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#72 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(52): Laminas\Stratigility\MiddlewarePipe->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#73 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(45): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#74 /etc/shlink/vendor/shlinkio/shlink-common/src/Middleware/CloseDbConnectionMiddleware.php(24): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#75 /etc/shlink/vendor/mezzio/mezzio/src/Middleware/LazyLoadingMiddleware.php(26): Shlinkio\Shlink\Common\Middleware\CloseDbConnectionMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#76 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(52): Mezzio\Middleware\LazyLoadingMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#77 /etc/shlink/vendor/laminas/laminas-stratigility/src/MiddlewarePipe.php(77): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#78 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(52): Laminas\Stratigility\MiddlewarePipe->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#79 /etc/shlink/vendor/laminas/laminas-stratigility/src/Middleware/PathMiddlewareDecorator.php(122): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#80 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(45): Psr\Http\Server\RequestHandlerInterface@anonymous->handle(Object(Laminas\Diactoros\ServerRequest))
#81 /etc/shlink/vendor/mezzio/mezzio-problem-details/src/ProblemDetailsMiddleware.php(46): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#82 /etc/shlink/vendor/mezzio/mezzio/src/Middleware/LazyLoadingMiddleware.php(26): Mezzio\ProblemDetails\ProblemDetailsMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#83 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(52): Mezzio\Middleware\LazyLoadingMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#84 /etc/shlink/vendor/laminas/laminas-stratigility/src/MiddlewarePipe.php(77): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#85 /etc/shlink/vendor/laminas/laminas-stratigility/src/Middleware/PathMiddlewareDecorator.php(60): Laminas\Stratigility\MiddlewarePipe->process(Object(Laminas\Diactoros\ServerRequest), Object(Psr\Http\Server\RequestHandlerInterface@anonymous))
#86 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(52): Laminas\Stratigility\Middleware\PathMiddlewareDecorator->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#87 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(45): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#88 /etc/shlink/module/Rest/src/Middleware/CrossDomainMiddleware.php(24): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#89 /etc/shlink/vendor/mezzio/mezzio/src/Middleware/LazyLoadingMiddleware.php(26): Shlinkio\Shlink\Rest\Middleware\CrossDomainMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#90 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(52): Mezzio\Middleware\LazyLoadingMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#91 /etc/shlink/vendor/laminas/laminas-stratigility/src/Middleware/ErrorHandler.php(129): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#92 /etc/shlink/vendor/mezzio/mezzio/src/Middleware/LazyLoadingMiddleware.php(26): Laminas\Stratigility\Middleware\ErrorHandler->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#93 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(52): Mezzio\Middleware\LazyLoadingMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#94 /etc/shlink/vendor/shlinkio/shlink-common/src/Middleware/RequestIdMiddleware.php(33): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#95 /etc/shlink/vendor/mezzio/mezzio/src/Middleware/LazyLoadingMiddleware.php(26): Shlinkio\Shlink\Common\Middleware\RequestIdMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#96 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(52): Mezzio\Middleware\LazyLoadingMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#97 /etc/shlink/vendor/shlinkio/shlink-common/src/Middleware/ContentLengthMiddleware.php(16): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#98 /etc/shlink/vendor/mezzio/mezzio/src/Middleware/LazyLoadingMiddleware.php(26): Shlinkio\Shlink\Common\Middleware\ContentLengthMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#99 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(52): Mezzio\Middleware\LazyLoadingMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#100 /etc/shlink/vendor/shlinkio/shlink-common/src/Middleware/AccessLogMiddleware.php(26): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#101 /etc/shlink/vendor/mezzio/mezzio/src/Middleware/LazyLoadingMiddleware.php(26): Shlinkio\Shlink\Common\Middleware\AccessLogMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#102 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(52): Mezzio\Middleware\LazyLoadingMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#103 /etc/shlink/vendor/laminas/laminas-stratigility/src/MiddlewarePipe.php(77): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#104 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(52): Laminas\Stratigility\MiddlewarePipe->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#105 /etc/shlink/vendor/laminas/laminas-stratigility/src/MiddlewarePipe.php(77): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#106 /etc/shlink/vendor/laminas/laminas-stratigility/src/MiddlewarePipe.php(66): Laminas\Stratigility\MiddlewarePipe->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\EmptyPipelineHandler))
#107 /etc/shlink/vendor/mezzio/mezzio/src/Application.php(34): Laminas\Stratigility\MiddlewarePipe->handle(Object(Laminas\Diactoros\ServerRequest))
#108 /etc/shlink/bin/roadrunner-worker.php(25): Mezzio\Application->handle(Object(Laminas\Diactoros\ServerRequest))
#109 /etc/shlink/bin/roadrunner-worker.php(36): {closure:/etc/shlink/bin/roadrunner-worker.php:13}()
#110 {main}
Next Symfony\Component\Lock\Exception\LockAcquiringException: Failed to acquire the "444roadrunner:tag_tlsredis" lock. in /etc/shlink/vendor/symfony/lock/Lock.php:116
Stack trace:
#0 /etc/shlink/module/Core/src/ShortUrl/Resolver/PersistenceShortUrlRelationResolver.php(110): Symfony\Component\Lock\Lock->acquire(true)
#1 /etc/shlink/module/Core/src/ShortUrl/Resolver/PersistenceShortUrlRelationResolver.php(80): Shlinkio\Shlink\Core\ShortUrl\Resolver\PersistenceShortUrlRelationResolver->lock(Array, 'tag_tlsredis')
#2 [internal function]: Shlinkio\Shlink\Core\ShortUrl\Resolver\PersistenceShortUrlRelationResolver->{closure:Shlinkio\Shlink\Core\ShortUrl\Resolver\PersistenceShortUrlRelationResolver::resolveTags():79}('tlsredis')
#3 /etc/shlink/module/Core/src/ShortUrl/Resolver/PersistenceShortUrlRelationResolver.php(79): array_map(Object(Closure), Array)
#4 /etc/shlink/module/Core/src/ShortUrl/Entity/ShortUrl.php(99): Shlinkio\Shlink\Core\ShortUrl\Resolver\PersistenceShortUrlRelationResolver->resolveTags(Array)
#5 /etc/shlink/module/Core/src/ShortUrl/UrlShortener.php(47): Shlinkio\Shlink\Core\ShortUrl\Entity\ShortUrl::create(Object(Shlinkio\Shlink\Core\ShortUrl\Model\ShortUrlCreation), Object(Shlinkio\Shlink\Core\ShortUrl\Resolver\PersistenceShortUrlRelationResolver))
#6 /etc/shlink/vendor/doctrine/orm/src/EntityManager.php(183): Shlinkio\Shlink\Core\ShortUrl\UrlShortener->{closure:Shlinkio\Shlink\Core\ShortUrl\UrlShortener::shorten():46}(Object(Doctrine\ORM\EntityManager))
#7 /etc/shlink/vendor/doctrine/orm/src/Decorator/EntityManagerDecorator.php(72): Doctrine\ORM\EntityManager->wrapInTransaction(Object(Closure))
#8 /etc/shlink/module/Core/src/ShortUrl/UrlShortener.php(46): Doctrine\ORM\Decorator\EntityManagerDecorator->wrapInTransaction(Object(Closure))
#9 /etc/shlink/module/Rest/src/Action/ShortUrl/AbstractCreateShortUrlAction.php(29): Shlinkio\Shlink\Core\ShortUrl\UrlShortener->shorten(Object(Shlinkio\Shlink\Core\ShortUrl\Model\ShortUrlCreation))
#10 /etc/shlink/vendor/laminas/laminas-stratigility/src/Middleware/RequestHandlerMiddleware.php(46): Shlinkio\Shlink\Rest\Action\ShortUrl\AbstractCreateShortUrlAction->handle(Object(Laminas\Diactoros\ServerRequest))
#11 /etc/shlink/vendor/mezzio/mezzio/src/Middleware/LazyLoadingMiddleware.php(26): Laminas\Stratigility\Middleware\RequestHandlerMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#12 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(52): Mezzio\Middleware\LazyLoadingMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#13 /etc/shlink/module/Rest/src/Middleware/ShortUrl/DefaultShortCodesLengthMiddleware.php(28): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#14 /etc/shlink/vendor/mezzio/mezzio/src/Middleware/LazyLoadingMiddleware.php(26): Shlinkio\Shlink\Rest\Middleware\ShortUrl\DefaultShortCodesLengthMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#15 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(52): Mezzio\Middleware\LazyLoadingMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#16 /etc/shlink/module/Rest/src/Middleware/ShortUrl/OverrideDomainMiddleware.php(27): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#17 /etc/shlink/vendor/mezzio/mezzio/src/Middleware/LazyLoadingMiddleware.php(26): Shlinkio\Shlink\Rest\Middleware\ShortUrl\OverrideDomainMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#18 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(52): Mezzio\Middleware\LazyLoadingMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#19 /etc/shlink/module/Rest/src/Middleware/ShortUrl/DropDefaultDomainFromRequestMiddleware.php(26): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#20 /etc/shlink/vendor/mezzio/mezzio/src/Middleware/LazyLoadingMiddleware.php(26): Shlinkio\Shlink\Rest\Middleware\ShortUrl\DropDefaultDomainFromRequestMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#21 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(52): Mezzio\Middleware\LazyLoadingMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#22 /etc/shlink/vendor/laminas/laminas-stratigility/src/MiddlewarePipe.php(77): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#23 /etc/shlink/vendor/mezzio/mezzio-router/src/Route.php(79): Laminas\Stratigility\MiddlewarePipe->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#24 /etc/shlink/vendor/mezzio/mezzio-router/src/RouteResult.php(109): Mezzio\Router\Route->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#25 /etc/shlink/vendor/mezzio/mezzio-router/src/Middleware/DispatchMiddleware.php(32): Mezzio\Router\RouteResult->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#26 /etc/shlink/vendor/mezzio/mezzio/src/Middleware/LazyLoadingMiddleware.php(26): Mezzio\Router\Middleware\DispatchMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#27 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(52): Mezzio\Middleware\LazyLoadingMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#28 /etc/shlink/vendor/laminas/laminas-stratigility/src/MiddlewarePipe.php(77): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#29 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(52): Laminas\Stratigility\MiddlewarePipe->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#30 /etc/shlink/vendor/laminas/laminas-stratigility/src/Middleware/PathMiddlewareDecorator.php(122): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#31 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(45): Psr\Http\Server\RequestHandlerInterface@anonymous->handle(Object(Laminas\Diactoros\ServerRequest))
#32 /etc/shlink/module/Rest/src/Middleware/AuthenticationMiddleware.php(52): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#33 /etc/shlink/vendor/mezzio/mezzio/src/Middleware/LazyLoadingMiddleware.php(26): Shlinkio\Shlink\Rest\Middleware\AuthenticationMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#34 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(52): Mezzio\Middleware\LazyLoadingMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#35 /etc/shlink/module/Rest/src/Middleware/BodyParserMiddleware.php(37): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#36 /etc/shlink/vendor/mezzio/mezzio/src/Middleware/LazyLoadingMiddleware.php(26): Shlinkio\Shlink\Rest\Middleware\BodyParserMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#37 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(52): Mezzio\Middleware\LazyLoadingMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#38 /etc/shlink/vendor/mezzio/mezzio-router/src/Middleware/ImplicitOptionsMiddleware.php(75): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#39 /etc/shlink/vendor/mezzio/mezzio/src/Middleware/LazyLoadingMiddleware.php(26): Mezzio\Router\Middleware\ImplicitOptionsMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#40 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(52): Mezzio\Middleware\LazyLoadingMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#41 /etc/shlink/vendor/laminas/laminas-stratigility/src/MiddlewarePipe.php(77): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#42 /etc/shlink/vendor/laminas/laminas-stratigility/src/Middleware/PathMiddlewareDecorator.php(60): Laminas\Stratigility\MiddlewarePipe->process(Object(Laminas\Diactoros\ServerRequest), Object(Psr\Http\Server\RequestHandlerInterface@anonymous))
#43 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(52): Laminas\Stratigility\Middleware\PathMiddlewareDecorator->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#44 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(45): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#45 /etc/shlink/vendor/mezzio/mezzio-router/src/Middleware/ImplicitHeadMiddleware.php(77): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#46 /etc/shlink/vendor/mezzio/mezzio/src/Middleware/LazyLoadingMiddleware.php(26): Mezzio\Router\Middleware\ImplicitHeadMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#47 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(52): Mezzio\Middleware\LazyLoadingMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#48 /etc/shlink/vendor/mezzio/mezzio-router/src/Middleware/RouteMiddleware.php(50): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#49 /etc/shlink/vendor/mezzio/mezzio/src/Middleware/LazyLoadingMiddleware.php(26): Mezzio\Router\Middleware\RouteMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#50 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(52): Mezzio\Middleware\LazyLoadingMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#51 /etc/shlink/vendor/laminas/laminas-stratigility/src/MiddlewarePipe.php(77): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#52 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(52): Laminas\Stratigility\MiddlewarePipe->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#53 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(45): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#54 /etc/shlink/vendor/shlinkio/shlink-common/src/Middleware/CloseDbConnectionMiddleware.php(24): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#55 /etc/shlink/vendor/mezzio/mezzio/src/Middleware/LazyLoadingMiddleware.php(26): Shlinkio\Shlink\Common\Middleware\CloseDbConnectionMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#56 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(52): Mezzio\Middleware\LazyLoadingMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#57 /etc/shlink/vendor/laminas/laminas-stratigility/src/MiddlewarePipe.php(77): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#58 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(52): Laminas\Stratigility\MiddlewarePipe->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#59 /etc/shlink/vendor/laminas/laminas-stratigility/src/Middleware/PathMiddlewareDecorator.php(122): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#60 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(45): Psr\Http\Server\RequestHandlerInterface@anonymous->handle(Object(Laminas\Diactoros\ServerRequest))
#61 /etc/shlink/vendor/mezzio/mezzio-problem-details/src/ProblemDetailsMiddleware.php(46): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#62 /etc/shlink/vendor/mezzio/mezzio/src/Middleware/LazyLoadingMiddleware.php(26): Mezzio\ProblemDetails\ProblemDetailsMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#63 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(52): Mezzio\Middleware\LazyLoadingMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#64 /etc/shlink/vendor/laminas/laminas-stratigility/src/MiddlewarePipe.php(77): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#65 /etc/shlink/vendor/laminas/laminas-stratigility/src/Middleware/PathMiddlewareDecorator.php(60): Laminas\Stratigility\MiddlewarePipe->process(Object(Laminas\Diactoros\ServerRequest), Object(Psr\Http\Server\RequestHandlerInterface@anonymous))
#66 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(52): Laminas\Stratigility\Middleware\PathMiddlewareDecorator->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#67 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(45): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#68 /etc/shlink/module/Rest/src/Middleware/CrossDomainMiddleware.php(24): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#69 /etc/shlink/vendor/mezzio/mezzio/src/Middleware/LazyLoadingMiddleware.php(26): Shlinkio\Shlink\Rest\Middleware\CrossDomainMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#70 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(52): Mezzio\Middleware\LazyLoadingMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#71 /etc/shlink/vendor/laminas/laminas-stratigility/src/Middleware/ErrorHandler.php(129): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#72 /etc/shlink/vendor/mezzio/mezzio/src/Middleware/LazyLoadingMiddleware.php(26): Laminas\Stratigility\Middleware\ErrorHandler->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#73 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(52): Mezzio\Middleware\LazyLoadingMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#74 /etc/shlink/vendor/shlinkio/shlink-common/src/Middleware/RequestIdMiddleware.php(33): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#75 /etc/shlink/vendor/mezzio/mezzio/src/Middleware/LazyLoadingMiddleware.php(26): Shlinkio\Shlink\Common\Middleware\RequestIdMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#76 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(52): Mezzio\Middleware\LazyLoadingMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#77 /etc/shlink/vendor/shlinkio/shlink-common/src/Middleware/ContentLengthMiddleware.php(16): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#78 /etc/shlink/vendor/mezzio/mezzio/src/Middleware/LazyLoadingMiddleware.php(26): Shlinkio\Shlink\Common\Middleware\ContentLengthMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#79 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(52): Mezzio\Middleware\LazyLoadingMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#80 /etc/shlink/vendor/shlinkio/shlink-common/src/Middleware/AccessLogMiddleware.php(26): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#81 /etc/shlink/vendor/mezzio/mezzio/src/Middleware/LazyLoadingMiddleware.php(26): Shlinkio\Shlink\Common\Middleware\AccessLogMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#82 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(52): Mezzio\Middleware\LazyLoadingMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#83 /etc/shlink/vendor/laminas/laminas-stratigility/src/MiddlewarePipe.php(77): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#84 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(52): Laminas\Stratigility\MiddlewarePipe->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#85 /etc/shlink/vendor/laminas/laminas-stratigility/src/MiddlewarePipe.php(77): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#86 /etc/shlink/vendor/laminas/laminas-stratigility/src/MiddlewarePipe.php(66): Laminas\Stratigility\MiddlewarePipe->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\EmptyPipelineHandler))
#87 /etc/shlink/vendor/mezzio/mezzio/src/Application.php(34): Laminas\Stratigility\MiddlewarePipe->handle(Object(Laminas\Diactoros\ServerRequest))
#88 /etc/shlink/bin/roadrunner-worker.php(25): Mezzio\Application->handle(Object(Laminas\Diactoros\ServerRequest))
#89 /etc/shlink/bin/roadrunner-worker.php(36): {closure:/etc/shlink/bin/roadrunner-worker.php:13}()
#90 {main}
2025-02-21T09:17:27+0000	INFO	server      	[2025-02-21T11:17:27.809239+02:00] [91b95fbd-b4b6-432a-a03c-d1993811ee03] Access.INFO - POST /rest/v3/short-urls 500 143
```

So, it seems that the Shlink to Redis cluster connection does not work properly when TLS is enabled for the connection. It's not the same error that we had previously with 4.4.0, but it seems quite similar though.


### Expected behavior

Shlink can fully operate when connected to a Redis cluster with TLS encryption enabled.

### Minimum steps to reproduce

- Setup a Redis cluster that has TLS connections enabled
- Setup one or multiple Shlink instances from the official Docker image 4.4.4-roadrunner (arm64)
- Make sure the connection from Shlink to the Redis cluster is encrypted by setting the envvar ```REDIS_SERVERS``` correctly
Shlink 4.4.4 failing to acquire lock with Redis cluster when TLS connection to the Redis cluster is enabled
### Shlink version

4.4.4-roadrunner (arm64)

### PHP version

Official Docker Image

### How do you serve Shlink

Docker image

### Database engine

MariaDB

### Database version

10.11.10

### Current behavior

Hey it's me again!

To keep it short, I'm not going to go over our AWS setup for Shlink again, all the relevant stuff can be read from my previous issue: https://github.com/shlinkio/shlink/issues/2366

In our dev environment, I upgraded Shlink from version 4.3.1 to version 4.4.4 and re-enabled TLS for the MariaDB connection which is, in my opinion, the most important feature of the 4.4.x branch and it seems to work like a charm, great.

I tried to break our Redis cluster in multiple ways, and with version 4.4.4 - unlike with version 4.4.0 - I didn't see any issues if the connection from Shlink to the Redis cluster is disrupted when the connection is unencrypted, which is good!

However, I wanted to try enabling TLS connection from Shlink to the Redis cluster, so that every possible connection between any dependency would then be encrypted in our Shlink setup. And then some problems started to show up.

The connection to the Redis cluster is made by setting the following envvar:
```
REDIS_SERVERS=tls://insertusernamehere:insertpasswordhere@nodename-redacted-redis-cluster-shlink-0001-001.abcdef.0001.memorydb.eu-north-1.amazonaws.com:6379,tls://insertusernamehere:insertpasswordhere@nodename-redacted-redis-cluster-shlink-0001-002.abcdef.0001.memorydb.eu-north-1.amazonaws.com:6379,tls://insertusernamehere:insertpasswordhere@nodename-redacted-redis-cluster-shlink-0001-003.abcdef.0001.memorydb.eu-north-1.amazonaws.com:6379
```

The Shlink Fargate tasks start up and keep running and serve traffic to users. However, there are some deprecation warnings in the log that DID NOT show up when the Redis cluster connection was unencrypted:

```
Initializing database if needed... [Running "/usr/local/bin/php bin/cli db:create"]   RUN  '/usr/local/bin/php' 'bin/cli' 'db:create'
  OUT  
  OUT  Deprecated: Calling stream_context_set_option() with 2 arguments is deprecated, use stream_context_set_options() instead in /etc/shlink/vendor/predis/predis/src/Connection/StreamConnection.php on line 214
  OUT  
  OUT  Deprecated: Calling stream_context_set_option() with 2 arguments is deprecated, use stream_context_set_options() instead in /etc/shlink/vendor/predis/predis/src/Connection/StreamConnection.php on line 214
  OUT  
  OUT   [OK] Database already exists. Run "db:migrate" command to make sure it is up to
  OUT        date.                                                                     
  OUT  
  OUT  
  RES  Command ran successfully
 Success!
Updating database... [Running "/usr/local/bin/php bin/cli db:migrate"]   RUN  '/usr/local/bin/php' 'bin/cli' 'db:migrate'
  OUT  
  OUT  Deprecated: Calling stream_context_set_option() with 2 arguments is deprecated, use stream_context_set_options() instead in /etc/shlink/vendor/predis/predis/src/Connection/StreamConnection.php on line 214
  OUT  
  OUT  Deprecated: Calling stream_context_set_option() with 2 arguments is deprecated, use stream_context_set_options() instead in /etc/shlink/vendor/predis/predis/src/Connection/StreamConnection.php on line 214
  OUT  Migrating database...
  OUT  
  ERR    RUN  '/usr/local/bin/php' 'vendor/doctrine/migrations/bin/doctrine-migrations.php' 'migrations:migrate' '--no-interaction'
  ERR    OUT  
  ERR    OUT   [WARNING] You have 1 previously executed migrations in the database that are   
  ERR    OUT             not registered migrations.                                           
  ERR    OUT  
  ERR    OUT   >> 2025-02-17 08:01:56 (ShlinkMigrations\Version20230103105343)
  ERR    OUT  
  ERR    OUT   [OK] Successfully migrated to version: ShlinkMigrations\Version20250215100756  
  ERR    OUT  
  ERR    OUT  
  ERR    OUT  
  ERR    RES  Command ran successfully
  ERR  
  OUT  
  OUT   [OK] Database properly migrated!                                               
  OUT  
  OUT  
  RES  Command ran successfully
 Success!
Generating proxies... [Running "/usr/local/bin/php bin/doctrine orm:generate-proxies"]   RUN  '/usr/local/bin/php' 'bin/doctrine' 'orm:generate-proxies'
  OUT  
  OUT  Deprecated: Calling stream_context_set_option() with 2 arguments is deprecated, use stream_context_set_options() instead in /etc/shlink/vendor/predis/predis/src/Connection/StreamConnection.php on line 214
  OUT  
  OUT  Deprecated: Calling stream_context_set_option() with 2 arguments is deprecated, use stream_context_set_options() instead in /etc/shlink/vendor/predis/predis/src/Connection/StreamConnection.php on line 214
  OUT  
  ERR   Processing entity "Shlinkio\Shlink\Core\Tag\Entity\Tag"
  ERR   Processing entity "Shlinkio\Shlink\Core\Visit\Entity\OrphanVisitsCount"
  ERR   Processing entity "Shlinkio\Shlink\Core\Domain\Entity\Domain"
  ERR   Processing entity "Shlinkio\Shlink\Core\RedirectRule\Entity\ShortUrlRedirectRule"
  ERR   Processing entity "Shlinkio\Shlink\Core\Geolocation\Entity\GeolocationDbUpdate"
  ERR   Processing entity "Shlinkio\Shlink\Core\Visit\Entity\VisitLocation"
  ERR   Processing entity "Shlinkio\Shlink\Core\RedirectRule\Entity\RedirectCondition"
  ERR   Processing entity "Shlinkio\Shlink\Core\Visit\Entity\Visit"
  ERR   Processing entity "Shlinkio\Shlink\Core\ShortUrl\Entity\ShortUrl"
  ERR   Processing entity "Shlinkio\Shlink\Core\Visit\Entity\ShortUrlVisitsCount"
  ERR   Processing entity "Shlinkio\Shlink\Rest\Entity\ApiKey"
  ERR   Processing entity "Shlinkio\Shlink\Rest\Entity\ApiKeyRole"
  ERR  
  ERR   Proxy classes generated to "/etc/shlink/data/proxies"
  ERR  
  RES  Command ran successfully
 Success!
Clearing entities cache... [Running "/usr/local/bin/php bin/doctrine orm:clear-cache:metadata"]   RUN  '/usr/local/bin/php' 'bin/doctrine' 'orm:clear-cache:metadata'
  ERR  
  ERR   // Clearing all Metadata cache entries                                         
  ERR  
  ERR  
  OUT  
  OUT  Deprecated: Calling stream_context_set_option() with 2 arguments is deprecated, use stream_context_set_options() instead in /etc/shlink/vendor/predis/predis/src/Connection/StreamConnection.php on line 214
  OUT  
  OUT  Deprecated: Calling stream_context_set_option() with 2 arguments is deprecated, use stream_context_set_options() instead in /etc/shlink/vendor/predis/predis/src/Connection/StreamConnection.php on line 214
  OUT  
  ERR   [OK] Successfully deleted cache entries.                                       
  ERR  
  ERR  
  RES  Command ran successfully
 Success!
Creating first API key... [Running "/usr/local/bin/php bin/cli api-key:initial <REDACTED>"]   RUN  '/usr/local/bin/php' 'bin/cli' 'api-key:initial' '<REDACTED>'
  OUT  
  OUT  Deprecated: Calling stream_context_set_option() with 2 arguments is deprecated, use stream_context_set_options() instead in /etc/shlink/vendor/predis/predis/src/Connection/StreamConnection.php on line 214
  OUT  
  OUT  Deprecated: Calling stream_context_set_option() with 2 arguments is deprecated, use stream_context_set_options() instead in /etc/shlink/vendor/predis/predis/src/Connection/StreamConnection.php on line 214
  OUT  Other API keys already exist. Initial API key creation skipped.
  OUT  
  RES  Command ran successfully
 Success!
 
Deprecated: Calling stream_context_set_option() with 2 arguments is deprecated, use stream_context_set_options() instead in /etc/shlink/vendor/predis/predis/src/Connection/StreamConnection.php on line 214
Deprecated: Calling stream_context_set_option() with 2 arguments is deprecated, use stream_context_set_options() instead in /etc/shlink/vendor/predis/predis/src/Connection/StreamConnection.php on line 214
Other API keys already exist. Initial API key creation skipped.
{
    "level": "debug",
    "ts": 1740129278769502014,
    "logger": "rpc",
    "msg": "plugin was started",
    "address": "tcp://127.0.0.1:6001",
    "list of the plugins with RPC methods:": [
        "lock",
        "app",
        "informer",
        "resetter",
        "jobs"
    ]
}
2025-02-21T09:14:38+0000	DEBUG	jobs        	initializing driver	
{
    "pipeline": "shlink",
    "driver": "memory"
}
2025-02-21T09:14:38+0000	DEBUG	jobs        	driver ready	
{
    "pipeline": "shlink",
    "driver": "memory",
    "start": "2025-02-21T09:14:38+0000",
    "elapsed": 0
}
{
    "level": "debug",
    "ts": 1740129278770214083,
    "logger": "memory",
    "msg": "pipeline was started",
    "driver": "memory",
    "pipeline": "shlink",
    "start": "2025-02-21 09:14:38.770210768 +0000 UTC",
    "elapsed": "9.559µs"
}
[INFO] RoadRunner server started; version: 2024.3.4, buildtime: 2025-02-13T19:36:49+0000
[INFO] sdnotify: not notified
```

Okay, so they're not exactly errors per se and the start up sequence finished so I'm not that concerned at this point.

Now, I try to create a new short link without tags. It gets created fine.
Next, I try to create a new short link WITH a tag. The Shlink Web Client throws "An unknown error occurred", so I'm facing the same problem that happened with version 4.4.0 in my previous issue (and to be clear, with 4.4.0 the Redis cluster connection was unencrypted).

But, this time the errors in Shlink logs are completely different than with the 4.4.0, and they are actually the same deprecation exceptions that were shown in Shlink startup:
```
2025-02-21T09:17:27+0000	INFO	server      	[2025-02-21T11:17:27.803008+02:00] [91b95fbd-b4b6-432a-a03c-d1993811ee03] Shlink.NOTICE - Failed to acquire the "444roadrunner:tag_tlsredis" lock.
2025-02-21T09:17:27+0000	INFO	server      	[2025-02-21T11:17:27.808872+02:00] [91b95fbd-b4b6-432a-a03c-d1993811ee03] Shlink.ERROR - ErrorException: Calling stream_context_set_option() with 2 arguments is deprecated, use stream_context_set_options() instead in /etc/shlink/vendor/predis/predis/src/Connection/StreamConnection.php:214
Stack trace:
#0 [internal function]: Mezzio\ProblemDetails\ProblemDetailsMiddleware::{closure:Mezzio\ProblemDetails\ProblemDetailsMiddleware::createErrorHandler():110}(8192, 'Calling stream_...', '/etc/shlink/ven...', 214)
#1 /etc/shlink/vendor/predis/predis/src/Connection/StreamConnection.php(214): stream_context_set_option(Resource id #1107, Array)
#2 /etc/shlink/vendor/predis/predis/src/Connection/StreamConnection.php(87): Predis\Connection\StreamConnection->tlsStreamInitializer(Object(Predis\Connection\Parameters))
#3 /etc/shlink/vendor/predis/predis/src/Connection/AbstractConnection.php(85): Predis\Connection\StreamConnection->createResource()
#4 /etc/shlink/vendor/predis/predis/src/Connection/StreamConnection.php(230): Predis\Connection\AbstractConnection->connect()
#5 /etc/shlink/vendor/predis/predis/src/Connection/AbstractConnection.php(169): Predis\Connection\StreamConnection->connect()
#6 /etc/shlink/vendor/predis/predis/src/Connection/StreamConnection.php(265): Predis\Connection\AbstractConnection->getResource()
#7 /etc/shlink/vendor/predis/predis/src/Connection/StreamConnection.php(372): Predis\Connection\StreamConnection->write('*2\r\n$7\r\nCLUSTER...')
#8 /etc/shlink/vendor/predis/predis/src/Connection/AbstractConnection.php(122): Predis\Connection\StreamConnection->writeRequest(Object(Predis\Command\RawCommand))
#9 /etc/shlink/vendor/predis/predis/src/Connection/Cluster/RedisCluster.php(244): Predis\Connection\AbstractConnection->executeCommand(Object(Predis\Command\RawCommand))
#10 /etc/shlink/vendor/predis/predis/src/Connection/Cluster/RedisCluster.php(284): Predis\Connection\Cluster\RedisCluster->queryClusterNodeForSlotMap(Object(Predis\Connection\StreamConnection))
#11 /etc/shlink/vendor/predis/predis/src/Connection/Cluster/RedisCluster.php(560): Predis\Connection\Cluster\RedisCluster->askSlotMap()
#12 /etc/shlink/vendor/predis/predis/src/Connection/Cluster/RedisCluster.php(591): Predis\Connection\Cluster\RedisCluster->retryCommandOnFailure(Object(Predis\Command\Redis\EVAL_), 'executeCommand')
#13 /etc/shlink/vendor/predis/predis/src/Client.php(381): Predis\Connection\Cluster\RedisCluster->executeCommand(Object(Predis\Command\Redis\EVAL_))
#14 /etc/shlink/vendor/predis/predis/src/Client.php(335): Predis\Client->executeCommand(Object(Predis\Command\Redis\EVAL_))
#15 /etc/shlink/vendor/symfony/lock/Store/RedisStore.php(254): Predis\Client->__call('eval', Array)
#16 /etc/shlink/vendor/symfony/lock/Store/RedisStore.php(283): Symfony\Component\Lock\Store\RedisStore->evaluate('\n              ...', 'symfony_check_s...', Array)
#17 /etc/shlink/vendor/symfony/lock/Store/RedisStore.php(59): Symfony\Component\Lock\Store\RedisStore->getNowCode()
#18 /etc/shlink/vendor/shlinkio/shlink-common/src/Lock/NamespacedStore.php(29): Symfony\Component\Lock\Store\RedisStore->save(Object(Symfony\Component\Lock\Key))
#19 /etc/shlink/vendor/symfony/lock/Lock.php(75): Shlinkio\Shlink\Common\Lock\NamespacedStore->save(Object(Symfony\Component\Lock\Key))
#20 /etc/shlink/module/Core/src/ShortUrl/Resolver/PersistenceShortUrlRelationResolver.php(110): Symfony\Component\Lock\Lock->acquire(true)
#21 /etc/shlink/module/Core/src/ShortUrl/Resolver/PersistenceShortUrlRelationResolver.php(80): Shlinkio\Shlink\Core\ShortUrl\Resolver\PersistenceShortUrlRelationResolver->lock(Array, 'tag_tlsredis')
#22 [internal function]: Shlinkio\Shlink\Core\ShortUrl\Resolver\PersistenceShortUrlRelationResolver->{closure:Shlinkio\Shlink\Core\ShortUrl\Resolver\PersistenceShortUrlRelationResolver::resolveTags():79}('tlsredis')
#23 /etc/shlink/module/Core/src/ShortUrl/Resolver/PersistenceShortUrlRelationResolver.php(79): array_map(Object(Closure), Array)
#24 /etc/shlink/module/Core/src/ShortUrl/Entity/ShortUrl.php(99): Shlinkio\Shlink\Core\ShortUrl\Resolver\PersistenceShortUrlRelationResolver->resolveTags(Array)
#25 /etc/shlink/module/Core/src/ShortUrl/UrlShortener.php(47): Shlinkio\Shlink\Core\ShortUrl\Entity\ShortUrl::create(Object(Shlinkio\Shlink\Core\ShortUrl\Model\ShortUrlCreation), Object(Shlinkio\Shlink\Core\ShortUrl\Resolver\PersistenceShortUrlRelationResolver))
#26 /etc/shlink/vendor/doctrine/orm/src/EntityManager.php(183): Shlinkio\Shlink\Core\ShortUrl\UrlShortener->{closure:Shlinkio\Shlink\Core\ShortUrl\UrlShortener::shorten():46}(Object(Doctrine\ORM\EntityManager))
#27 /etc/shlink/vendor/doctrine/orm/src/Decorator/EntityManagerDecorator.php(72): Doctrine\ORM\EntityManager->wrapInTransaction(Object(Closure))
#28 /etc/shlink/module/Core/src/ShortUrl/UrlShortener.php(46): Doctrine\ORM\Decorator\EntityManagerDecorator->wrapInTransaction(Object(Closure))
#29 /etc/shlink/module/Rest/src/Action/ShortUrl/AbstractCreateShortUrlAction.php(29): Shlinkio\Shlink\Core\ShortUrl\UrlShortener->shorten(Object(Shlinkio\Shlink\Core\ShortUrl\Model\ShortUrlCreation))
#30 /etc/shlink/vendor/laminas/laminas-stratigility/src/Middleware/RequestHandlerMiddleware.php(46): Shlinkio\Shlink\Rest\Action\ShortUrl\AbstractCreateShortUrlAction->handle(Object(Laminas\Diactoros\ServerRequest))
#31 /etc/shlink/vendor/mezzio/mezzio/src/Middleware/LazyLoadingMiddleware.php(26): Laminas\Stratigility\Middleware\RequestHandlerMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#32 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(52): Mezzio\Middleware\LazyLoadingMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#33 /etc/shlink/module/Rest/src/Middleware/ShortUrl/DefaultShortCodesLengthMiddleware.php(28): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#34 /etc/shlink/vendor/mezzio/mezzio/src/Middleware/LazyLoadingMiddleware.php(26): Shlinkio\Shlink\Rest\Middleware\ShortUrl\DefaultShortCodesLengthMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#35 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(52): Mezzio\Middleware\LazyLoadingMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#36 /etc/shlink/module/Rest/src/Middleware/ShortUrl/OverrideDomainMiddleware.php(27): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#37 /etc/shlink/vendor/mezzio/mezzio/src/Middleware/LazyLoadingMiddleware.php(26): Shlinkio\Shlink\Rest\Middleware\ShortUrl\OverrideDomainMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#38 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(52): Mezzio\Middleware\LazyLoadingMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#39 /etc/shlink/module/Rest/src/Middleware/ShortUrl/DropDefaultDomainFromRequestMiddleware.php(26): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#40 /etc/shlink/vendor/mezzio/mezzio/src/Middleware/LazyLoadingMiddleware.php(26): Shlinkio\Shlink\Rest\Middleware\ShortUrl\DropDefaultDomainFromRequestMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#41 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(52): Mezzio\Middleware\LazyLoadingMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#42 /etc/shlink/vendor/laminas/laminas-stratigility/src/MiddlewarePipe.php(77): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#43 /etc/shlink/vendor/mezzio/mezzio-router/src/Route.php(79): Laminas\Stratigility\MiddlewarePipe->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#44 /etc/shlink/vendor/mezzio/mezzio-router/src/RouteResult.php(109): Mezzio\Router\Route->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#45 /etc/shlink/vendor/mezzio/mezzio-router/src/Middleware/DispatchMiddleware.php(32): Mezzio\Router\RouteResult->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#46 /etc/shlink/vendor/mezzio/mezzio/src/Middleware/LazyLoadingMiddleware.php(26): Mezzio\Router\Middleware\DispatchMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#47 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(52): Mezzio\Middleware\LazyLoadingMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#48 /etc/shlink/vendor/laminas/laminas-stratigility/src/MiddlewarePipe.php(77): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#49 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(52): Laminas\Stratigility\MiddlewarePipe->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#50 /etc/shlink/vendor/laminas/laminas-stratigility/src/Middleware/PathMiddlewareDecorator.php(122): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#51 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(45): Psr\Http\Server\RequestHandlerInterface@anonymous->handle(Object(Laminas\Diactoros\ServerRequest))
#52 /etc/shlink/module/Rest/src/Middleware/AuthenticationMiddleware.php(52): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#53 /etc/shlink/vendor/mezzio/mezzio/src/Middleware/LazyLoadingMiddleware.php(26): Shlinkio\Shlink\Rest\Middleware\AuthenticationMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#54 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(52): Mezzio\Middleware\LazyLoadingMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#55 /etc/shlink/module/Rest/src/Middleware/BodyParserMiddleware.php(37): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#56 /etc/shlink/vendor/mezzio/mezzio/src/Middleware/LazyLoadingMiddleware.php(26): Shlinkio\Shlink\Rest\Middleware\BodyParserMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#57 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(52): Mezzio\Middleware\LazyLoadingMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#58 /etc/shlink/vendor/mezzio/mezzio-router/src/Middleware/ImplicitOptionsMiddleware.php(75): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#59 /etc/shlink/vendor/mezzio/mezzio/src/Middleware/LazyLoadingMiddleware.php(26): Mezzio\Router\Middleware\ImplicitOptionsMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#60 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(52): Mezzio\Middleware\LazyLoadingMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#61 /etc/shlink/vendor/laminas/laminas-stratigility/src/MiddlewarePipe.php(77): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#62 /etc/shlink/vendor/laminas/laminas-stratigility/src/Middleware/PathMiddlewareDecorator.php(60): Laminas\Stratigility\MiddlewarePipe->process(Object(Laminas\Diactoros\ServerRequest), Object(Psr\Http\Server\RequestHandlerInterface@anonymous))
#63 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(52): Laminas\Stratigility\Middleware\PathMiddlewareDecorator->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#64 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(45): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#65 /etc/shlink/vendor/mezzio/mezzio-router/src/Middleware/ImplicitHeadMiddleware.php(77): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#66 /etc/shlink/vendor/mezzio/mezzio/src/Middleware/LazyLoadingMiddleware.php(26): Mezzio\Router\Middleware\ImplicitHeadMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#67 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(52): Mezzio\Middleware\LazyLoadingMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#68 /etc/shlink/vendor/mezzio/mezzio-router/src/Middleware/RouteMiddleware.php(50): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#69 /etc/shlink/vendor/mezzio/mezzio/src/Middleware/LazyLoadingMiddleware.php(26): Mezzio\Router\Middleware\RouteMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#70 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(52): Mezzio\Middleware\LazyLoadingMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#71 /etc/shlink/vendor/laminas/laminas-stratigility/src/MiddlewarePipe.php(77): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#72 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(52): Laminas\Stratigility\MiddlewarePipe->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#73 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(45): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#74 /etc/shlink/vendor/shlinkio/shlink-common/src/Middleware/CloseDbConnectionMiddleware.php(24): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#75 /etc/shlink/vendor/mezzio/mezzio/src/Middleware/LazyLoadingMiddleware.php(26): Shlinkio\Shlink\Common\Middleware\CloseDbConnectionMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#76 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(52): Mezzio\Middleware\LazyLoadingMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#77 /etc/shlink/vendor/laminas/laminas-stratigility/src/MiddlewarePipe.php(77): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#78 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(52): Laminas\Stratigility\MiddlewarePipe->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#79 /etc/shlink/vendor/laminas/laminas-stratigility/src/Middleware/PathMiddlewareDecorator.php(122): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#80 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(45): Psr\Http\Server\RequestHandlerInterface@anonymous->handle(Object(Laminas\Diactoros\ServerRequest))
#81 /etc/shlink/vendor/mezzio/mezzio-problem-details/src/ProblemDetailsMiddleware.php(46): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#82 /etc/shlink/vendor/mezzio/mezzio/src/Middleware/LazyLoadingMiddleware.php(26): Mezzio\ProblemDetails\ProblemDetailsMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#83 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(52): Mezzio\Middleware\LazyLoadingMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#84 /etc/shlink/vendor/laminas/laminas-stratigility/src/MiddlewarePipe.php(77): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#85 /etc/shlink/vendor/laminas/laminas-stratigility/src/Middleware/PathMiddlewareDecorator.php(60): Laminas\Stratigility\MiddlewarePipe->process(Object(Laminas\Diactoros\ServerRequest), Object(Psr\Http\Server\RequestHandlerInterface@anonymous))
#86 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(52): Laminas\Stratigility\Middleware\PathMiddlewareDecorator->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#87 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(45): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#88 /etc/shlink/module/Rest/src/Middleware/CrossDomainMiddleware.php(24): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#89 /etc/shlink/vendor/mezzio/mezzio/src/Middleware/LazyLoadingMiddleware.php(26): Shlinkio\Shlink\Rest\Middleware\CrossDomainMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#90 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(52): Mezzio\Middleware\LazyLoadingMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#91 /etc/shlink/vendor/laminas/laminas-stratigility/src/Middleware/ErrorHandler.php(129): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#92 /etc/shlink/vendor/mezzio/mezzio/src/Middleware/LazyLoadingMiddleware.php(26): Laminas\Stratigility\Middleware\ErrorHandler->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#93 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(52): Mezzio\Middleware\LazyLoadingMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#94 /etc/shlink/vendor/shlinkio/shlink-common/src/Middleware/RequestIdMiddleware.php(33): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#95 /etc/shlink/vendor/mezzio/mezzio/src/Middleware/LazyLoadingMiddleware.php(26): Shlinkio\Shlink\Common\Middleware\RequestIdMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#96 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(52): Mezzio\Middleware\LazyLoadingMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#97 /etc/shlink/vendor/shlinkio/shlink-common/src/Middleware/ContentLengthMiddleware.php(16): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#98 /etc/shlink/vendor/mezzio/mezzio/src/Middleware/LazyLoadingMiddleware.php(26): Shlinkio\Shlink\Common\Middleware\ContentLengthMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#99 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(52): Mezzio\Middleware\LazyLoadingMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#100 /etc/shlink/vendor/shlinkio/shlink-common/src/Middleware/AccessLogMiddleware.php(26): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#101 /etc/shlink/vendor/mezzio/mezzio/src/Middleware/LazyLoadingMiddleware.php(26): Shlinkio\Shlink\Common\Middleware\AccessLogMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#102 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(52): Mezzio\Middleware\LazyLoadingMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#103 /etc/shlink/vendor/laminas/laminas-stratigility/src/MiddlewarePipe.php(77): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#104 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(52): Laminas\Stratigility\MiddlewarePipe->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#105 /etc/shlink/vendor/laminas/laminas-stratigility/src/MiddlewarePipe.php(77): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#106 /etc/shlink/vendor/laminas/laminas-stratigility/src/MiddlewarePipe.php(66): Laminas\Stratigility\MiddlewarePipe->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\EmptyPipelineHandler))
#107 /etc/shlink/vendor/mezzio/mezzio/src/Application.php(34): Laminas\Stratigility\MiddlewarePipe->handle(Object(Laminas\Diactoros\ServerRequest))
#108 /etc/shlink/bin/roadrunner-worker.php(25): Mezzio\Application->handle(Object(Laminas\Diactoros\ServerRequest))
#109 /etc/shlink/bin/roadrunner-worker.php(36): {closure:/etc/shlink/bin/roadrunner-worker.php:13}()
#110 {main}
Next Symfony\Component\Lock\Exception\LockAcquiringException: Failed to acquire the "444roadrunner:tag_tlsredis" lock. in /etc/shlink/vendor/symfony/lock/Lock.php:116
Stack trace:
#0 /etc/shlink/module/Core/src/ShortUrl/Resolver/PersistenceShortUrlRelationResolver.php(110): Symfony\Component\Lock\Lock->acquire(true)
#1 /etc/shlink/module/Core/src/ShortUrl/Resolver/PersistenceShortUrlRelationResolver.php(80): Shlinkio\Shlink\Core\ShortUrl\Resolver\PersistenceShortUrlRelationResolver->lock(Array, 'tag_tlsredis')
#2 [internal function]: Shlinkio\Shlink\Core\ShortUrl\Resolver\PersistenceShortUrlRelationResolver->{closure:Shlinkio\Shlink\Core\ShortUrl\Resolver\PersistenceShortUrlRelationResolver::resolveTags():79}('tlsredis')
#3 /etc/shlink/module/Core/src/ShortUrl/Resolver/PersistenceShortUrlRelationResolver.php(79): array_map(Object(Closure), Array)
#4 /etc/shlink/module/Core/src/ShortUrl/Entity/ShortUrl.php(99): Shlinkio\Shlink\Core\ShortUrl\Resolver\PersistenceShortUrlRelationResolver->resolveTags(Array)
#5 /etc/shlink/module/Core/src/ShortUrl/UrlShortener.php(47): Shlinkio\Shlink\Core\ShortUrl\Entity\ShortUrl::create(Object(Shlinkio\Shlink\Core\ShortUrl\Model\ShortUrlCreation), Object(Shlinkio\Shlink\Core\ShortUrl\Resolver\PersistenceShortUrlRelationResolver))
#6 /etc/shlink/vendor/doctrine/orm/src/EntityManager.php(183): Shlinkio\Shlink\Core\ShortUrl\UrlShortener->{closure:Shlinkio\Shlink\Core\ShortUrl\UrlShortener::shorten():46}(Object(Doctrine\ORM\EntityManager))
#7 /etc/shlink/vendor/doctrine/orm/src/Decorator/EntityManagerDecorator.php(72): Doctrine\ORM\EntityManager->wrapInTransaction(Object(Closure))
#8 /etc/shlink/module/Core/src/ShortUrl/UrlShortener.php(46): Doctrine\ORM\Decorator\EntityManagerDecorator->wrapInTransaction(Object(Closure))
#9 /etc/shlink/module/Rest/src/Action/ShortUrl/AbstractCreateShortUrlAction.php(29): Shlinkio\Shlink\Core\ShortUrl\UrlShortener->shorten(Object(Shlinkio\Shlink\Core\ShortUrl\Model\ShortUrlCreation))
#10 /etc/shlink/vendor/laminas/laminas-stratigility/src/Middleware/RequestHandlerMiddleware.php(46): Shlinkio\Shlink\Rest\Action\ShortUrl\AbstractCreateShortUrlAction->handle(Object(Laminas\Diactoros\ServerRequest))
#11 /etc/shlink/vendor/mezzio/mezzio/src/Middleware/LazyLoadingMiddleware.php(26): Laminas\Stratigility\Middleware\RequestHandlerMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#12 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(52): Mezzio\Middleware\LazyLoadingMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#13 /etc/shlink/module/Rest/src/Middleware/ShortUrl/DefaultShortCodesLengthMiddleware.php(28): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#14 /etc/shlink/vendor/mezzio/mezzio/src/Middleware/LazyLoadingMiddleware.php(26): Shlinkio\Shlink\Rest\Middleware\ShortUrl\DefaultShortCodesLengthMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#15 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(52): Mezzio\Middleware\LazyLoadingMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#16 /etc/shlink/module/Rest/src/Middleware/ShortUrl/OverrideDomainMiddleware.php(27): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#17 /etc/shlink/vendor/mezzio/mezzio/src/Middleware/LazyLoadingMiddleware.php(26): Shlinkio\Shlink\Rest\Middleware\ShortUrl\OverrideDomainMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#18 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(52): Mezzio\Middleware\LazyLoadingMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#19 /etc/shlink/module/Rest/src/Middleware/ShortUrl/DropDefaultDomainFromRequestMiddleware.php(26): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#20 /etc/shlink/vendor/mezzio/mezzio/src/Middleware/LazyLoadingMiddleware.php(26): Shlinkio\Shlink\Rest\Middleware\ShortUrl\DropDefaultDomainFromRequestMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#21 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(52): Mezzio\Middleware\LazyLoadingMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#22 /etc/shlink/vendor/laminas/laminas-stratigility/src/MiddlewarePipe.php(77): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#23 /etc/shlink/vendor/mezzio/mezzio-router/src/Route.php(79): Laminas\Stratigility\MiddlewarePipe->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#24 /etc/shlink/vendor/mezzio/mezzio-router/src/RouteResult.php(109): Mezzio\Router\Route->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#25 /etc/shlink/vendor/mezzio/mezzio-router/src/Middleware/DispatchMiddleware.php(32): Mezzio\Router\RouteResult->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#26 /etc/shlink/vendor/mezzio/mezzio/src/Middleware/LazyLoadingMiddleware.php(26): Mezzio\Router\Middleware\DispatchMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#27 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(52): Mezzio\Middleware\LazyLoadingMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#28 /etc/shlink/vendor/laminas/laminas-stratigility/src/MiddlewarePipe.php(77): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#29 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(52): Laminas\Stratigility\MiddlewarePipe->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#30 /etc/shlink/vendor/laminas/laminas-stratigility/src/Middleware/PathMiddlewareDecorator.php(122): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#31 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(45): Psr\Http\Server\RequestHandlerInterface@anonymous->handle(Object(Laminas\Diactoros\ServerRequest))
#32 /etc/shlink/module/Rest/src/Middleware/AuthenticationMiddleware.php(52): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#33 /etc/shlink/vendor/mezzio/mezzio/src/Middleware/LazyLoadingMiddleware.php(26): Shlinkio\Shlink\Rest\Middleware\AuthenticationMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#34 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(52): Mezzio\Middleware\LazyLoadingMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#35 /etc/shlink/module/Rest/src/Middleware/BodyParserMiddleware.php(37): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#36 /etc/shlink/vendor/mezzio/mezzio/src/Middleware/LazyLoadingMiddleware.php(26): Shlinkio\Shlink\Rest\Middleware\BodyParserMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#37 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(52): Mezzio\Middleware\LazyLoadingMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#38 /etc/shlink/vendor/mezzio/mezzio-router/src/Middleware/ImplicitOptionsMiddleware.php(75): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#39 /etc/shlink/vendor/mezzio/mezzio/src/Middleware/LazyLoadingMiddleware.php(26): Mezzio\Router\Middleware\ImplicitOptionsMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#40 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(52): Mezzio\Middleware\LazyLoadingMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#41 /etc/shlink/vendor/laminas/laminas-stratigility/src/MiddlewarePipe.php(77): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#42 /etc/shlink/vendor/laminas/laminas-stratigility/src/Middleware/PathMiddlewareDecorator.php(60): Laminas\Stratigility\MiddlewarePipe->process(Object(Laminas\Diactoros\ServerRequest), Object(Psr\Http\Server\RequestHandlerInterface@anonymous))
#43 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(52): Laminas\Stratigility\Middleware\PathMiddlewareDecorator->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#44 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(45): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#45 /etc/shlink/vendor/mezzio/mezzio-router/src/Middleware/ImplicitHeadMiddleware.php(77): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#46 /etc/shlink/vendor/mezzio/mezzio/src/Middleware/LazyLoadingMiddleware.php(26): Mezzio\Router\Middleware\ImplicitHeadMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#47 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(52): Mezzio\Middleware\LazyLoadingMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#48 /etc/shlink/vendor/mezzio/mezzio-router/src/Middleware/RouteMiddleware.php(50): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#49 /etc/shlink/vendor/mezzio/mezzio/src/Middleware/LazyLoadingMiddleware.php(26): Mezzio\Router\Middleware\RouteMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#50 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(52): Mezzio\Middleware\LazyLoadingMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#51 /etc/shlink/vendor/laminas/laminas-stratigility/src/MiddlewarePipe.php(77): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#52 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(52): Laminas\Stratigility\MiddlewarePipe->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#53 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(45): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#54 /etc/shlink/vendor/shlinkio/shlink-common/src/Middleware/CloseDbConnectionMiddleware.php(24): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#55 /etc/shlink/vendor/mezzio/mezzio/src/Middleware/LazyLoadingMiddleware.php(26): Shlinkio\Shlink\Common\Middleware\CloseDbConnectionMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#56 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(52): Mezzio\Middleware\LazyLoadingMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#57 /etc/shlink/vendor/laminas/laminas-stratigility/src/MiddlewarePipe.php(77): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#58 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(52): Laminas\Stratigility\MiddlewarePipe->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#59 /etc/shlink/vendor/laminas/laminas-stratigility/src/Middleware/PathMiddlewareDecorator.php(122): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#60 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(45): Psr\Http\Server\RequestHandlerInterface@anonymous->handle(Object(Laminas\Diactoros\ServerRequest))
#61 /etc/shlink/vendor/mezzio/mezzio-problem-details/src/ProblemDetailsMiddleware.php(46): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#62 /etc/shlink/vendor/mezzio/mezzio/src/Middleware/LazyLoadingMiddleware.php(26): Mezzio\ProblemDetails\ProblemDetailsMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#63 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(52): Mezzio\Middleware\LazyLoadingMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#64 /etc/shlink/vendor/laminas/laminas-stratigility/src/MiddlewarePipe.php(77): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#65 /etc/shlink/vendor/laminas/laminas-stratigility/src/Middleware/PathMiddlewareDecorator.php(60): Laminas\Stratigility\MiddlewarePipe->process(Object(Laminas\Diactoros\ServerRequest), Object(Psr\Http\Server\RequestHandlerInterface@anonymous))
#66 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(52): Laminas\Stratigility\Middleware\PathMiddlewareDecorator->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#67 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(45): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#68 /etc/shlink/module/Rest/src/Middleware/CrossDomainMiddleware.php(24): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#69 /etc/shlink/vendor/mezzio/mezzio/src/Middleware/LazyLoadingMiddleware.php(26): Shlinkio\Shlink\Rest\Middleware\CrossDomainMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#70 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(52): Mezzio\Middleware\LazyLoadingMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#71 /etc/shlink/vendor/laminas/laminas-stratigility/src/Middleware/ErrorHandler.php(129): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#72 /etc/shlink/vendor/mezzio/mezzio/src/Middleware/LazyLoadingMiddleware.php(26): Laminas\Stratigility\Middleware\ErrorHandler->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#73 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(52): Mezzio\Middleware\LazyLoadingMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#74 /etc/shlink/vendor/shlinkio/shlink-common/src/Middleware/RequestIdMiddleware.php(33): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#75 /etc/shlink/vendor/mezzio/mezzio/src/Middleware/LazyLoadingMiddleware.php(26): Shlinkio\Shlink\Common\Middleware\RequestIdMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#76 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(52): Mezzio\Middleware\LazyLoadingMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#77 /etc/shlink/vendor/shlinkio/shlink-common/src/Middleware/ContentLengthMiddleware.php(16): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#78 /etc/shlink/vendor/mezzio/mezzio/src/Middleware/LazyLoadingMiddleware.php(26): Shlinkio\Shlink\Common\Middleware\ContentLengthMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#79 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(52): Mezzio\Middleware\LazyLoadingMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#80 /etc/shlink/vendor/shlinkio/shlink-common/src/Middleware/AccessLogMiddleware.php(26): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#81 /etc/shlink/vendor/mezzio/mezzio/src/Middleware/LazyLoadingMiddleware.php(26): Shlinkio\Shlink\Common\Middleware\AccessLogMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#82 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(52): Mezzio\Middleware\LazyLoadingMiddleware->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#83 /etc/shlink/vendor/laminas/laminas-stratigility/src/MiddlewarePipe.php(77): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#84 /etc/shlink/vendor/laminas/laminas-stratigility/src/Next.php(52): Laminas\Stratigility\MiddlewarePipe->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#85 /etc/shlink/vendor/laminas/laminas-stratigility/src/MiddlewarePipe.php(77): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#86 /etc/shlink/vendor/laminas/laminas-stratigility/src/MiddlewarePipe.php(66): Laminas\Stratigility\MiddlewarePipe->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\EmptyPipelineHandler))
#87 /etc/shlink/vendor/mezzio/mezzio/src/Application.php(34): Laminas\Stratigility\MiddlewarePipe->handle(Object(Laminas\Diactoros\ServerRequest))
#88 /etc/shlink/bin/roadrunner-worker.php(25): Mezzio\Application->handle(Object(Laminas\Diactoros\ServerRequest))
#89 /etc/shlink/bin/roadrunner-worker.php(36): {closure:/etc/shlink/bin/roadrunner-worker.php:13}()
#90 {main}
2025-02-21T09:17:27+0000	INFO	server      	[2025-02-21T11:17:27.809239+02:00] [91b95fbd-b4b6-432a-a03c-d1993811ee03] Access.INFO - POST /rest/v3/short-urls 500 143
```

So, it seems that the Shlink to Redis cluster connection does not work properly when TLS is enabled for the connection. It's not the same error that we had previously with 4.4.0, but it seems quite similar though.


### Expected behavior

Shlink can fully operate when connected to a Redis cluster with TLS encryption enabled.

### Minimum steps to reproduce

- Setup a Redis cluster that has TLS connections enabled
- Setup one or multiple Shlink instances from the official Docker image 4.4.4-roadrunner (arm64)
- Make sure the connection from Shlink to the Redis cluster is encrypted by setting the envvar ```REDIS_SERVERS``` correctly


Discussion / hints:
The deprecation warning in question seems to have been [fixed in predis](https://github.com/predis/predis/pull/1503) already, but they haven't released it yet.

However, I would not have expected that to escalate into a full error, so Shlink is probably setting up some too strict error handler somewhere. I'll take a look.
The deprecation warning in question seems to have been [fixed in predis](https://github.com/predis/predis/pull/1503) already, but they haven't released it yet.

However, I would not have expected that to escalate into a full error, so Shlink is probably setting up some too strict error handler somewhere. I'll take a look.

Fix patch:
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 81cb8ba0a..a15e880e9 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -4,6 +4,25 @@ All notable changes to this project will be documented in this file.
 
 The format is based on [Keep a Changelog](https://keepachangelog.com), and this project adheres to [Semantic Versioning](https://semver.org).
 
+## [Unreleased]
+### Added
+* *Nothing*
+
+### Changed
+* *Nothing*
+
+### Deprecated
+* *Nothing*
+
+### Removed
+* *Nothing*
+
+### Fixed
+* [#2373](https://github.com/shlinkio/shlink/issues/2373) Ensure deprecation warnings do not end up escalated to `ErrorException`s by `ProblemDetailsMiddleware`.
+
+  In order to do this, Shlink will entirely ignore deprecation warnings when running in production, as those do not mean something is not working, but only that something will break in future versions.
+
+
 ## [4.4.4] - 2025-02-19
 ### Added
 * *Nothing*
diff --git a/config/container.php b/config/container.php
index 6ac078961..31e406a3d 100644
--- a/config/container.php
+++ b/config/container.php
@@ -11,6 +11,7 @@
 
 use const Shlinkio\Shlink\LOCAL_LOCK_FACTORY;
 
+// Set current directory to the project's root directory
 chdir(dirname(__DIR__));
 
 require 'vendor/autoload.php';
@@ -21,7 +22,11 @@
     enumValues(EnvVars::class),
 );
 
-// This is one of the first files loaded. Configure the timezone and memory limit here
+// This is one of the first files loaded. Set global configuration here
+error_reporting(
+    // Set a less strict error reporting for prod, where deprecation warnings should be ignored
+    EnvVars::isProdEnv() ? E_ALL & ~E_DEPRECATED & ~E_USER_DEPRECATED : E_ALL,
+);
 ini_set('memory_limit', EnvVars::MEMORY_LIMIT->loadFromEnv());
 date_default_timezone_set(EnvVars::TIMEZONE->loadFromEnv());
 
diff --git a/data/infra/php.ini b/data/infra/php.ini
index ba8b1620a..12b6a3c03 100644
--- a/data/infra/php.ini
+++ b/data/infra/php.ini
@@ -1,5 +1,4 @@
 display_errors=On
-error_reporting=-1
 log_errors_max_len=0
 zend.assertions=1
 assert.exception=1


Test patch: