shlinkio / shlink

The definitive self-hosted URL shortener
https://shlink.io
MIT License
3.23k stars 259 forks source link

An internal error on the renaming action of the tag #562

Closed thomas-illiet closed 4 years ago

thomas-illiet commented 4 years ago

Hello Guys :)

When I make an API request to rename tag with an existing new name, Shlink API return an internal error 🙈

Can you catch this by your ApiException ?

Next Doctrine\DBAL\Driver\PDOException: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'you-touch-my-trololo69' for key 'UNIQ_6FBC94265E237E06' in /etc/shlink/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOStatement.php:123
Stack trace:
#0 /etc/shlink/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php(1060): Doctrine\DBAL\Driver\PDOStatement->execute()
#1 /etc/shlink/vendor/doctrine/orm/lib/Doctrine/ORM/Persisters/Entity/BasicEntityPersister.php(501): Doctrine\DBAL\Connection->executeUpdate('UPDATE tags SET...', Array, Array)
#2 /etc/shlink/vendor/doctrine/orm/lib/Doctrine/ORM/Persisters/Entity/BasicEntityPersister.php(390): Doctrine\ORM\Persisters\Entity\BasicEntityPersister->updateTable(Object(Shlinkio\Shlink\Core\Entity\Tag), 'tags', Array, NULL)
#3 /etc/shlink/vendor/doctrine/orm/lib/Doctrine/ORM/UnitOfWork.php(1159): Doctrine\ORM\Persisters\Entity\BasicEntityPersister->update(Object(Shlinkio\Shlink\Core\Entity\Tag))
#4 /etc/shlink/vendor/doctrine/orm/lib/Doctrine/ORM/UnitOfWork.php(394): Doctrine\ORM\UnitOfWork->executeUpdates(Object(Doctrine\ORM\Mapping\ClassMetadata))
#5 /etc/shlink/vendor/doctrine/orm/lib/Doctrine/ORM/EntityManager.php(359): Doctrine\ORM\UnitOfWork->commit(Object(Shlinkio\Shlink\Core\Entity\Tag))
#6 /etc/shlink/vendor/doctrine/orm/lib/Doctrine/ORM/Decorator/EntityManagerDecorator.php(188): Doctrine\ORM\EntityManager->flush(Object(Shlinkio\Shlink\Core\Entity\Tag))
#7 /etc/shlink/module/Core/src/Service/Tag/TagService.php(82): Doctrine\ORM\Decorator\EntityManagerDecorator->flush(Object(Shlinkio\Shlink\Core\Entity\Tag))
#8 /etc/shlink/module/Rest/src/Action/Tag/UpdateTagAction.php(54): Shlinkio\Shlink\Core\Service\Tag\TagService->renameTag('you-touch-my-tr...', 'you-touch-my-tr...')
#9 /etc/shlink/vendor/zendframework/zend-stratigility/src/Middleware/RequestHandlerMiddleware.php(53): Shlinkio\Shlink\Rest\Action\Tag\UpdateTagAction->handle(Object(Zend\Diactoros\ServerRequest))
#10 /etc/shlink/vendor/zendframework/zend-expressive/src/Middleware/LazyLoadingMiddleware.php(46): Zend\Stratigility\Middleware\RequestHandlerMiddleware->process(Object(Zend\Diactoros\ServerRequest), Object(Zend\Stratigility\Next))
#11 /etc/shlink/vendor/zendframework/zend-stratigility/src/Next.php(60): Zend\Expressive\Middleware\LazyLoadingMiddleware->process(Object(Zend\Diactoros\ServerRequest), Object(Zend\Stratigility\Next))
#12 /etc/shlink/vendor/zendframework/zend-stratigility/src/MiddlewarePipe.php(83): Zend\Stratigility\Next->handle(Object(Zend\Diactoros\ServerRequest))
#13 /etc/shlink/vendor/zendframework/zend-expressive-router/src/Route.php(100): Zend\Stratigility\MiddlewarePipe->process(Object(Zend\Diactoros\ServerRequest), Object(Zend\Stratigility\Next))
#14 /etc/shlink/vendor/zendframework/zend-expressive-router/src/RouteResult.php(110): Zend\Expressive\Router\Route->process(Object(Zend\Diactoros\ServerRequest), Object(Zend\Stratigility\Next))
#15 /etc/shlink/vendor/zendframework/zend-expressive-router/src/Middleware/DispatchMiddleware.php(35): Zend\Expressive\Router\RouteResult->process(Object(Zend\Diactoros\ServerRequest), Object(Zend\Stratigility\Next))
#16 /etc/shlink/vendor/zendframework/zend-expressive/src/Middleware/LazyLoadingMiddleware.php(46): Zend\Expressive\Router\Middleware\DispatchMiddleware->process(Object(Zend\Diactoros\ServerRequest), Object(Zend\Stratigility\Next))
#17 /etc/shlink/vendor/zendframework/zend-stratigility/src/Next.php(60): Zend\Expressive\Middleware\LazyLoadingMiddleware->process(Object(Zend\Diactoros\ServerRequest), Object(Zend\Stratigility\Next))
#18 /etc/shlink/vendor/zendframework/zend-stratigility/src/MiddlewarePipe.php(83): Zend\Stratigility\Next->handle(Object(Zend\Diactoros\ServerRequest))
#19 /etc/shlink/vendor/zendframework/zend-stratigility/src/Next.php(60): Zend\Stratigility\MiddlewarePipe->process(Object(Zend\Diactoros\ServerRequest), Object(Zend\Stratigility\Next))
#20 /etc/shlink/vendor/zendframework/zend-stratigility/src/Middleware/PathMiddlewareDecorator.php(129): Zend\Stratigility\Next->handle(Object(Zend\Diactoros\ServerRequest))
#21 /etc/shlink/vendor/zendframework/zend-stratigility/src/Next.php(53): class@anonymous->handle(Object(Zend\Diactoros\ServerRequest))
#22 /etc/shlink/module/Rest/src/Middleware/AuthenticationMiddleware.php(82): Zend\Stratigility\Next->handle(Object(Zend\Diactoros\ServerRequest))
#23 /etc/shlink/vendor/zendframework/zend-expressive/src/Middleware/LazyLoadingMiddleware.php(46): Shlinkio\Shlink\Rest\Middleware\AuthenticationMiddleware->process(Object(Zend\Diactoros\ServerRequest), Object(Zend\Stratigility\Next))
#24 /etc/shlink/vendor/zendframework/zend-stratigility/src/Next.php(60): Zend\Expressive\Middleware\LazyLoadingMiddleware->process(Object(Zend\Diactoros\ServerRequest), Object(Zend\Stratigility\Next))
#25 /etc/shlink/module/Rest/src/Middleware/BodyParserMiddleware.php(51): Zend\Stratigility\Next->handle(Object(Zend\Diactoros\ServerRequest))
#26 /etc/shlink/vendor/zendframework/zend-expressive/src/Middleware/LazyLoadingMiddleware.php(46): Shlinkio\Shlink\Rest\Middleware\BodyParserMiddleware->process(Object(Zend\Diactoros\ServerRequest), Object(Zend\Stratigility\Next))
#27 /etc/shlink/vendor/zendframework/zend-stratigility/src/Next.php(60): Zend\Expressive\Middleware\LazyLoadingMiddleware->process(Object(Zend\Diactoros\ServerRequest), Object(Zend\Stratigility\Next))
#28 /etc/shlink/vendor/zendframework/zend-expressive-router/src/Middleware/ImplicitOptionsMiddleware.php(70): Zend\Stratigility\Next->handle(Object(Zend\Diactoros\ServerRequest))
#29 /etc/shlink/vendor/zendframework/zend-expressive/src/Middleware/LazyLoadingMiddleware.php(46): Zend\Expressive\Router\Middleware\ImplicitOptionsMiddleware->process(Object(Zend\Diactoros\ServerRequest), Object(Zend\Stratigility\Next))
#30 /etc/shlink/vendor/zendframework/zend-stratigility/src/Next.php(60): Zend\Expressive\Middleware\LazyLoadingMiddleware->process(Object(Zend\Diactoros\ServerRequest), Object(Zend\Stratigility\Next))
#31 /etc/shlink/module/Rest/src/Middleware/CrossDomainMiddleware.php(21): Zend\Stratigility\Next->handle(Object(Zend\Diactoros\ServerRequest))
#32 /etc/shlink/vendor/zendframework/zend-expressive/src/Middleware/LazyLoadingMiddleware.php(46): Shlinkio\Shlink\Rest\Middleware\CrossDomainMiddleware->process(Object(Zend\Diactoros\ServerRequest), Object(Zend\Stratigility\Next))
#33 /etc/shlink/vendor/zendframework/zend-stratigility/src/Next.php(60): Zend\Expressive\Middleware\LazyLoadingMiddleware->process(Object(Zend\Diactoros\ServerRequest), Object(Zend\Stratigility\Next))
#34 /etc/shlink/vendor/zendframework/zend-stratigility/src/MiddlewarePipe.php(83): Zend\Stratigility\Next->handle(Object(Zend\Diactoros\ServerRequest))
#35 /etc/shlink/vendor/zendframework/zend-stratigility/src/Middleware/PathMiddlewareDecorator.php(67): Zend\Stratigility\MiddlewarePipe->process(Object(Zend\Diactoros\ServerRequest), Object(class@anonymous))
#36 /etc/shlink/vendor/zendframework/zend-stratigility/src/Next.php(60): Zend\Stratigility\Middleware\PathMiddlewareDecorator->process(Object(Zend\Diactoros\ServerRequest), Object(Zend\Stratigility\Next))
#37 /etc/shlink/vendor/zendframework/zend-stratigility/src/Next.php(53): Zend\Stratigility\Next->handle(Object(Zend\Diactoros\ServerRequest))
#38 /etc/shlink/vendor/zendframework/zend-expressive-router/src/Middleware/RouteMiddleware.php(54): Zend\Stratigility\Next->handle(Object(Zend\Diactoros\ServerRequest))
#39 /etc/shlink/vendor/zendframework/zend-expressive/src/Middleware/LazyLoadingMiddleware.php(46): Zend\Expressive\Router\Middleware\RouteMiddleware->process(Object(Zend\Diactoros\ServerRequest), Object(Zend\Stratigility\Next))
#40 /etc/shlink/vendor/zendframework/zend-stratigility/src/Next.php(60): Zend\Expressive\Middleware\LazyLoadingMiddleware->process(Object(Zend\Diactoros\ServerRequest), Object(Zend\Stratigility\Next))
#41 /etc/shlink/vendor/zendframework/zend-stratigility/src/MiddlewarePipe.php(83): Zend\Stratigility\Next->handle(Object(Zend\Diactoros\ServerRequest))
#42 /etc/shlink/vendor/zendframework/zend-stratigility/src/Next.php(60): Zend\Stratigility\MiddlewarePipe->process(Object(Zend\Diactoros\ServerRequest), Object(Zend\Stratigility\Next))
#43 /etc/shlink/vendor/zendframework/zend-stratigility/src/Middleware/PathMiddlewareDecorator.php(129): Zend\Stratigility\Next->handle(Object(Zend\Diactoros\ServerRequest))
#44 /etc/shlink/vendor/zendframework/zend-stratigility/src/Next.php(53): class@anonymous->handle(Object(Zend\Diactoros\ServerRequest))
#45 /etc/shlink/module/Rest/src/Middleware/ShortUrl/ShortCodePathMiddleware.php(31): Zend\Stratigility\Next->handle(Object(Zend\Diactoros\ServerRequest))
#46 /etc/shlink/vendor/zendframework/zend-expressive/src/Middleware/LazyLoadingMiddleware.php(46): Shlinkio\Shlink\Rest\Middleware\ShortUrl\ShortCodePathMiddleware->process(Object(Zend\Diactoros\ServerRequest), Object(Zend\Stratigility\Next))
#47 /etc/shlink/vendor/zendframework/zend-stratigility/src/Next.php(60): Zend\Expressive\Middleware\LazyLoadingMiddleware->process(Object(Zend\Diactoros\ServerRequest), Object(Zend\Stratigility\Next))
#48 /etc/shlink/module/Rest/src/Middleware/PathVersionMiddleware.php(39): Zend\Stratigility\Next->handle(Object(Zend\Diactoros\ServerRequest))
#49 /etc/shlink/vendor/zendframework/zend-expressive/src/Middleware/LazyLoadingMiddleware.php(46): Shlinkio\Shlink\Rest\Middleware\PathVersionMiddleware->process(Object(Zend\Diactoros\ServerRequest), Object(Zend\Stratigility\Next))
#50 /etc/shlink/vendor/zendframework/zend-stratigility/src/Next.php(60): Zend\Expressive\Middleware\LazyLoadingMiddleware->process(Object(Zend\Diactoros\ServerRequest), Object(Zend\Stratigility\Next))
#51 /etc/shlink/vendor/zendframework/zend-stratigility/src/MiddlewarePipe.php(83): Zend\Stratigility\Next->handle(Object(Zend\Diactoros\ServerRequest))
#52 /etc/shlink/vendor/zendframework/zend-stratigility/src/Middleware/PathMiddlewareDecorator.php(67): Zend\Stratigility\MiddlewarePipe->process(Object(Zend\Diactoros\ServerRequest), Object(class@anonymous))
#53 /etc/shlink/vendor/zendframework/zend-stratigility/src/Next.php(60): Zend\Stratigility\Middleware\PathMiddlewareDecorator->process(Object(Zend\Diactoros\ServerRequest), Object(Zend\Stratigility\Next))
#54 /etc/shlink/vendor/zendframework/zend-stratigility/src/Next.php(53): Zend\Stratigility\Next->handle(Object(Zend\Diactoros\ServerRequest))
#55 /etc/shlink/vendor/shlinkio/shlink-common/src/Middleware/CloseDbConnectionMiddleware.php(28): Zend\Stratigility\Next->handle(Object(Zend\Diactoros\ServerRequest))
#56 /etc/shlink/vendor/zendframework/zend-expressive/src/Middleware/LazyLoadingMiddleware.php(46): Shlinkio\Shlink\Common\Middleware\CloseDbConnectionMiddleware->process(Object(Zend\Diactoros\ServerRequest), Object(Zend\Stratigility\Next))
#57 /etc/shlink/vendor/zendframework/zend-stratigility/src/Next.php(60): Zend\Expressive\Middleware\LazyLoadingMiddleware->process(Object(Zend\Diactoros\ServerRequest), Object(Zend\Stratigility\Next))
#58 /etc/shlink/vendor/zendframework/zend-expressive-helpers/src/ContentLengthMiddleware.php(31): Zend\Stratigility\Next->handle(Object(Zend\Diactoros\ServerRequest))
#59 /etc/shlink/vendor/zendframework/zend-expressive/src/Middleware/LazyLoadingMiddleware.php(46): Zend\Expressive\Helper\ContentLengthMiddleware->process(Object(Zend\Diactoros\ServerRequest), Object(Zend\Stratigility\Next))
#60 /etc/shlink/vendor/zendframework/zend-stratigility/src/Next.php(60): Zend\Expressive\Middleware\LazyLoadingMiddleware->process(Object(Zend\Diactoros\ServerRequest), Object(Zend\Stratigility\Next))
#61 /etc/shlink/vendor/zendframework/zend-stratigility/src/Middleware/ErrorHandler.php(143): Zend\Stratigility\Next->handle(Object(Zend\Diactoros\ServerRequest))
#62 /etc/shlink/vendor/zendframework/zend-expressive/src/Middleware/LazyLoadingMiddleware.php(46): Zend\Stratigility\Middleware\ErrorHandler->process(Object(Zend\Diactoros\ServerRequest), Object(Zend\Stratigility\Next))
#63 /etc/shlink/vendor/zendframework/zend-stratigility/src/Next.php(60): Zend\Expressive\Middleware\LazyLoadingMiddleware->process(Object(Zend\Diactoros\ServerRequest), Object(Zend\Stratigility\Next))
#64 /etc/shlink/vendor/zendframework/zend-stratigility/src/MiddlewarePipe.php(83): Zend\Stratigility\Next->handle(Object(Zend\Diactoros\ServerRequest))
#65 /etc/shlink/vendor/zendframework/zend-stratigility/src/Next.php(60): Zend\Stratigility\MiddlewarePipe->process(Object(Zend\Diactoros\ServerRequest), Object(Zend\Stratigility\Next))
#66 /etc/shlink/vendor/zendframework/zend-stratigility/src/MiddlewarePipe.php(83): Zend\Stratigility\Next->handle(Object(Zend\Diactoros\ServerRequest))
#67 /etc/shlink/vendor/zendframework/zend-stratigility/src/MiddlewarePipe.php(72): Zend\Stratigility\MiddlewarePipe->process(Object(Zend\Diactoros\ServerRequest), Object(Zend\Stratigility\EmptyPipelineHandler))
#68 /etc/shlink/vendor/zendframework/zend-expressive-swoole/src/SwooleRequestHandlerRunner.php(244): Zend\Stratigility\MiddlewarePipe->handle(Object(Zend\Diactoros\ServerRequest))
#69 {main}

Next Doctrine\DBAL\Exception\UniqueConstraintViolationException: An exception occurred while executing 'UPDATE tags SET name = ? WHERE id = ?' with params ["you-touch-my-trololo69", "85"]:

SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'you-touch-my-trololo69' for key 'UNIQ_6FBC94265E237E06' in /etc/shlink/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractMySQLDriver.php:55
Stack trace:
#0 /etc/shlink/vendor/doctrine/dbal/lib/Doctrine/DBAL/DBALException.php(166): Doctrine\DBAL\Driver\AbstractMySQLDriver->convertException('An exception oc...', Object(Doctrine\DBAL\Driver\PDOException))
#1 /etc/shlink/vendor/doctrine/dbal/lib/Doctrine/DBAL/DBALException.php(146): Doctrine\DBAL\DBALException::wrapException(Object(Doctrine\DBAL\Driver\PDOMySql\Driver), Object(Doctrine\DBAL\Driver\PDOException), 'An exception oc...')
#2 /etc/shlink/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php(1069): Doctrine\DBAL\DBALException::driverExceptionDuringQuery(Object(Doctrine\DBAL\Driver\PDOMySql\Driver), Object(Doctrine\DBAL\Driver\PDOException), 'UPDATE tags SET...', Array)
#3 /etc/shlink/vendor/doctrine/orm/lib/Doctrine/ORM/Persisters/Entity/BasicEntityPersister.php(501): Doctrine\DBAL\Connection->executeUpdate('UPDATE tags SET...', Array, Array)
#4 /etc/shlink/vendor/doctrine/orm/lib/Doctrine/ORM/Persisters/Entity/BasicEntityPersister.php(390): Doctrine\ORM\Persisters\Entity\BasicEntityPersister->updateTable(Object(Shlinkio\Shlink\Core\Entity\Tag), 'tags', Array, NULL)
#5 /etc/shlink/vendor/doctrine/orm/lib/Doctrine/ORM/UnitOfWork.php(1159): Doctrine\ORM\Persisters\Entity\BasicEntityPersister->update(Object(Shlinkio\Shlink\Core\Entity\Tag))
#6 /etc/shlink/vendor/doctrine/orm/lib/Doctrine/ORM/UnitOfWork.php(394): Doctrine\ORM\UnitOfWork->executeUpdates(Object(Doctrine\ORM\Mapping\ClassMetadata))
#7 /etc/shlink/vendor/doctrine/orm/lib/Doctrine/ORM/EntityManager.php(359): Doctrine\ORM\UnitOfWork->commit(Object(Shlinkio\Shlink\Core\Entity\Tag))
#8 /etc/shlink/vendor/doctrine/orm/lib/Doctrine/ORM/Decorator/EntityManagerDecorator.php(188): Doctrine\ORM\EntityManager->flush(Object(Shlinkio\Shlink\Core\Entity\Tag))
#9 /etc/shlink/module/Core/src/Service/Tag/TagService.php(82): Doctrine\ORM\Decorator\EntityManagerDecorator->flush(Object(Shlinkio\Shlink\Core\Entity\Tag))
#10 /etc/shlink/module/Rest/src/Action/Tag/UpdateTagAction.php(54): Shlinkio\Shlink\Core\Service\Tag\TagService->renameTag('you-touch-my-tr...', 'you-touch-my-tr...')
#11 /etc/shlink/vendor/zendframework/zend-stratigility/src/Middleware/RequestHandlerMiddleware.php(53): Shlinkio\Shlink\Rest\Action\Tag\UpdateTagAction->handle(Object(Zend\Diactoros\ServerRequest))
#12 /etc/shlink/vendor/zendframework/zend-expressive/src/Middleware/LazyLoadingMiddleware.php(46): Zend\Stratigility\Middleware\RequestHandlerMiddleware->process(Object(Zend\Diactoros\ServerRequest), Object(Zend\Stratigility\Next))
#13 /etc/shlink/vendor/zendframework/zend-stratigility/src/Next.php(60): Zend\Expressive\Middleware\LazyLoadingMiddleware->process(Object(Zend\Diactoros\ServerRequest), Object(Zend\Stratigility\Next))
#14 /etc/shlink/vendor/zendframework/zend-stratigility/src/MiddlewarePipe.php(83): Zend\Stratigility\Next->handle(Object(Zend\Diactoros\ServerRequest))
#15 /etc/shlink/vendor/zendframework/zend-expressive-router/src/Route.php(100): Zend\Stratigility\MiddlewarePipe->process(Object(Zend\Diactoros\ServerRequest), Object(Zend\Stratigility\Next))
#16 /etc/shlink/vendor/zendframework/zend-expressive-router/src/RouteResult.php(110): Zend\Expressive\Router\Route->process(Object(Zend\Diactoros\ServerRequest), Object(Zend\Stratigility\Next))
#17 /etc/shlink/vendor/zendframework/zend-expressive-router/src/Middleware/DispatchMiddleware.php(35): Zend\Expressive\Router\RouteResult->process(Object(Zend\Diactoros\ServerRequest), Object(Zend\Stratigility\Next))
#18 /etc/shlink/vendor/zendframework/zend-expressive/src/Middleware/LazyLoadingMiddleware.php(46): Zend\Expressive\Router\Middleware\DispatchMiddleware->process(Object(Zend\Diactoros\ServerRequest), Object(Zend\Stratigility\Next))
#19 /etc/shlink/vendor/zendframework/zend-stratigility/src/Next.php(60): Zend\Expressive\Middleware\LazyLoadingMiddleware->process(Object(Zend\Diactoros\ServerRequest), Object(Zend\Stratigility\Next))
#20 /etc/shlink/vendor/zendframework/zend-stratigility/src/MiddlewarePipe.php(83): Zend\Stratigility\Next->handle(Object(Zend\Diactoros\ServerRequest))
#21 /etc/shlink/vendor/zendframework/zend-stratigility/src/Next.php(60): Zend\Stratigility\MiddlewarePipe->process(Object(Zend\Diactoros\ServerRequest), Object(Zend\Stratigility\Next))
#22 /etc/shlink/vendor/zendframework/zend-stratigility/src/Middleware/PathMiddlewareDecorator.php(129): Zend\Stratigility\Next->handle(Object(Zend\Diactoros\ServerRequest))
#23 /etc/shlink/vendor/zendframework/zend-stratigility/src/Next.php(53): class@anonymous->handle(Object(Zend\Diactoros\ServerRequest))
#24 /etc/shlink/module/Rest/src/Middleware/AuthenticationMiddleware.php(82): Zend\Stratigility\Next->handle(Object(Zend\Diactoros\ServerRequest))
#25 /etc/shlink/vendor/zendframework/zend-expressive/src/Middleware/LazyLoadingMiddleware.php(46): Shlinkio\Shlink\Rest\Middleware\AuthenticationMiddleware->process(Object(Zend\Diactoros\ServerRequest), Object(Zend\Stratigility\Next))
#26 /etc/shlink/vendor/zendframework/zend-stratigility/src/Next.php(60): Zend\Expressive\Middleware\LazyLoadingMiddleware->process(Object(Zend\Diactoros\ServerRequest), Object(Zend\Stratigility\Next))
#27 /etc/shlink/module/Rest/src/Middleware/BodyParserMiddleware.php(51): Zend\Stratigility\Next->handle(Object(Zend\Diactoros\ServerRequest))
#28 /etc/shlink/vendor/zendframework/zend-expressive/src/Middleware/LazyLoadingMiddleware.php(46): Shlinkio\Shlink\Rest\Middleware\BodyParserMiddleware->process(Object(Zend\Diactoros\ServerRequest), Object(Zend\Stratigility\Next))
#29 /etc/shlink/vendor/zendframework/zend-stratigility/src/Next.php(60): Zend\Expressive\Middleware\LazyLoadingMiddleware->process(Object(Zend\Diactoros\ServerRequest), Object(Zend\Stratigility\Next))
#30 /etc/shlink/vendor/zendframework/zend-expressive-router/src/Middleware/ImplicitOptionsMiddleware.php(70): Zend\Stratigility\Next->handle(Object(Zend\Diactoros\ServerRequest))
#31 /etc/shlink/vendor/zendframework/zend-expressive/src/Middleware/LazyLoadingMiddleware.php(46): Zend\Expressive\Router\Middleware\ImplicitOptionsMiddleware->process(Object(Zend\Diactoros\ServerRequest), Object(Zend\Stratigility\Next))
#32 /etc/shlink/vendor/zendframework/zend-stratigility/src/Next.php(60): Zend\Expressive\Middleware\LazyLoadingMiddleware->process(Object(Zend\Diactoros\ServerRequest), Object(Zend\Stratigility\Next))
#33 /etc/shlink/module/Rest/src/Middleware/CrossDomainMiddleware.php(21): Zend\Stratigility\Next->handle(Object(Zend\Diactoros\ServerRequest))
#34 /etc/shlink/vendor/zendframework/zend-expressive/src/Middleware/LazyLoadingMiddleware.php(46): Shlinkio\Shlink\Rest\Middleware\CrossDomainMiddleware->process(Object(Zend\Diactoros\ServerRequest), Object(Zend\Stratigility\Next))
#35 /etc/shlink/vendor/zendframework/zend-stratigility/src/Next.php(60): Zend\Expressive\Middleware\LazyLoadingMiddleware->process(Object(Zend\Diactoros\ServerRequest), Object(Zend\Stratigility\Next))
#36 /etc/shlink/vendor/zendframework/zend-stratigility/src/MiddlewarePipe.php(83): Zend\Stratigility\Next->handle(Object(Zend\Diactoros\ServerRequest))
#37 /etc/shlink/vendor/zendframework/zend-stratigility/src/Middleware/PathMiddlewareDecorator.php(67): Zend\Stratigility\MiddlewarePipe->process(Object(Zend\Diactoros\ServerRequest), Object(class@anonymous))
#38 /etc/shlink/vendor/zendframework/zend-stratigility/src/Next.php(60): Zend\Stratigility\Middleware\PathMiddlewareDecorator->process(Object(Zend\Diactoros\ServerRequest), Object(Zend\Stratigility\Next))
#39 /etc/shlink/vendor/zendframework/zend-stratigility/src/Next.php(53): Zend\Stratigility\Next->handle(Object(Zend\Diactoros\ServerRequest))
#40 /etc/shlink/vendor/zendframework/zend-expressive-router/src/Middleware/RouteMiddleware.php(54): Zend\Stratigility\Next->handle(Object(Zend\Diactoros\ServerRequest))
#41 /etc/shlink/vendor/zendframework/zend-expressive/src/Middleware/LazyLoadingMiddleware.php(46): Zend\Expressive\Router\Middleware\RouteMiddleware->process(Object(Zend\Diactoros\ServerRequest), Object(Zend\Stratigility\Next))
#42 /etc/shlink/vendor/zendframework/zend-stratigility/src/Next.php(60): Zend\Expressive\Middleware\LazyLoadingMiddleware->process(Object(Zend\Diactoros\ServerRequest), Object(Zend\Stratigility\Next))
#43 /etc/shlink/vendor/zendframework/zend-stratigility/src/MiddlewarePipe.php(83): Zend\Stratigility\Next->handle(Object(Zend\Diactoros\ServerRequest))
#44 /etc/shlink/vendor/zendframework/zend-stratigility/src/Next.php(60): Zend\Stratigility\MiddlewarePipe->process(Object(Zend\Diactoros\ServerRequest), Object(Zend\Stratigility\Next))
#45 /etc/shlink/vendor/zendframework/zend-stratigility/src/Middleware/PathMiddlewareDecorator.php(129): Zend\Stratigility\Next->handle(Object(Zend\Diactoros\ServerRequest))
#46 /etc/shlink/vendor/zendframework/zend-stratigility/src/Next.php(53): class@anonymous->handle(Object(Zend\Diactoros\ServerRequest))
#47 /etc/shlink/module/Rest/src/Middleware/ShortUrl/ShortCodePathMiddleware.php(31): Zend\Stratigility\Next->handle(Object(Zend\Diactoros\ServerRequest))
#48 /etc/shlink/vendor/zendframework/zend-expressive/src/Middleware/LazyLoadingMiddleware.php(46): Shlinkio\Shlink\Rest\Middleware\ShortUrl\ShortCodePathMiddleware->process(Object(Zend\Diactoros\ServerRequest), Object(Zend\Stratigility\Next))
#49 /etc/shlink/vendor/zendframework/zend-stratigility/src/Next.php(60): Zend\Expressive\Middleware\LazyLoadingMiddleware->process(Object(Zend\Diactoros\ServerRequest), Object(Zend\Stratigility\Next))
#50 /etc/shlink/module/Rest/src/Middleware/PathVersionMiddleware.php(39): Zend\Stratigility\Next->handle(Object(Zend\Diactoros\ServerRequest))
#51 /etc/shlink/vendor/zendframework/zend-expressive/src/Middleware/LazyLoadingMiddleware.php(46): Shlinkio\Shlink\Rest\Middleware\PathVersionMiddleware->process(Object(Zend\Diactoros\ServerRequest), Object(Zend\Stratigility\Next))
#52 /etc/shlink/vendor/zendframework/zend-stratigility/src/Next.php(60): Zend\Expressive\Middleware\LazyLoadingMiddleware->process(Object(Zend\Diactoros\ServerRequest), Object(Zend\Stratigility\Next))
#53 /etc/shlink/vendor/zendframework/zend-stratigility/src/MiddlewarePipe.php(83): Zend\Stratigility\Next->handle(Object(Zend\Diactoros\ServerRequest))
#54 /etc/shlink/vendor/zendframework/zend-stratigility/src/Middleware/PathMiddlewareDecorator.php(67): Zend\Stratigility\MiddlewarePipe->process(Object(Zend\Diactoros\ServerRequest), Object(class@anonymous))
#55 /etc/shlink/vendor/zendframework/zend-stratigility/src/Next.php(60): Zend\Stratigility\Middleware\PathMiddlewareDecorator->process(Object(Zend\Diactoros\ServerRequest), Object(Zend\Stratigility\Next))
#56 /etc/shlink/vendor/zendframework/zend-stratigility/src/Next.php(53): Zend\Stratigility\Next->handle(Object(Zend\Diactoros\ServerRequest))
#57 /etc/shlink/vendor/shlinkio/shlink-common/src/Middleware/CloseDbConnectionMiddleware.php(28): Zend\Stratigility\Next->handle(Object(Zend\Diactoros\ServerRequest))
#58 /etc/shlink/vendor/zendframework/zend-expressive/src/Middleware/LazyLoadingMiddleware.php(46): Shlinkio\Shlink\Common\Middleware\CloseDbConnectionMiddleware->process(Object(Zend\Diactoros\ServerRequest), Object(Zend\Stratigility\Next))
#59 /etc/shlink/vendor/zendframework/zend-stratigility/src/Next.php(60): Zend\Expressive\Middleware\LazyLoadingMiddleware->process(Object(Zend\Diactoros\ServerRequest), Object(Zend\Stratigility\Next))
#60 /etc/shlink/vendor/zendframework/zend-expressive-helpers/src/ContentLengthMiddleware.php(31): Zend\Stratigility\Next->handle(Object(Zend\Diactoros\ServerRequest))
#61 /etc/shlink/vendor/zendframework/zend-expressive/src/Middleware/LazyLoadingMiddleware.php(46): Zend\Expressive\Helper\ContentLengthMiddleware->process(Object(Zend\Diactoros\ServerRequest), Object(Zend\Stratigility\Next))
#62 /etc/shlink/vendor/zendframework/zend-stratigility/src/Next.php(60): Zend\Expressive\Middleware\LazyLoadingMiddleware->process(Object(Zend\Diactoros\ServerRequest), Object(Zend\Stratigility\Next))
#63 /etc/shlink/vendor/zendframework/zend-stratigility/src/Middleware/ErrorHandler.php(143): Zend\Stratigility\Next->handle(Object(Zend\Diactoros\ServerRequest))
#64 /etc/shlink/vendor/zendframework/zend-expressive/src/Middleware/LazyLoadingMiddleware.php(46): Zend\Stratigility\Middleware\ErrorHandler->process(Object(Zend\Diactoros\ServerRequest), Object(Zend\Stratigility\Next))
#65 /etc/shlink/vendor/zendframework/zend-stratigility/src/Next.php(60): Zend\Expressive\Middleware\LazyLoadingMiddleware->process(Object(Zend\Diactoros\ServerRequest), Object(Zend\Stratigility\Next))
#66 /etc/shlink/vendor/zendframework/zend-stratigility/src/MiddlewarePipe.php(83): Zend\Stratigility\Next->handle(Object(Zend\Diactoros\ServerRequest))
#67 /etc/shlink/vendor/zendframework/zend-stratigility/src/Next.php(60): Zend\Stratigility\MiddlewarePipe->process(Object(Zend\Diactoros\ServerRequest), Object(Zend\Stratigility\Next))
#68 /etc/shlink/vendor/zendframework/zend-stratigility/src/MiddlewarePipe.php(83): Zend\Stratigility\Next->handle(Object(Zend\Diactoros\ServerRequest))
#69 /etc/shlink/vendor/zendframework/zend-stratigility/src/MiddlewarePipe.php(72): Zend\Stratigility\MiddlewarePipe->process(Object(Zend\Diactoros\ServerRequest), Object(Zend\Stratigility\EmptyPipelineHandler))
#70 /etc/shlink/vendor/zendframework/zend-expressive-swoole/src/SwooleRequestHandlerRunner.php(244): Zend\Stratigility\MiddlewarePipe->handle(Object(Zend\Diactoros\ServerRequest))
#71 {main}
[2019-12-05 20:43:40] Access.ERROR: 192.168.254.68 - - [05/Dec/2019:20:43:40 +0000] "PUT /rest/v1/tags HTTP/1.1" 500 67 [] []
acelaya commented 4 years ago

Interesting. This was on theory handled (our that's what I thought 🤔).

I will take a look and get it fixed if it's not controlled.

Just to ease reproducing it, how do your serve shlink and what database do you use?

acelaya commented 4 years ago

Yeah, I just verified it. This is not controlled :man_facepalming:

I will make sure a meaningful error is returned from the API.

acelaya commented 4 years ago

@thomas-illiet the fix has been merged and will be part of v1.20.2

Starting with that version, when this happens, the API will return a meaningful error with status 409.

acelaya commented 4 years ago

I have just released v1.20.2

thomas-illiet commented 4 years ago

Hey, I'm sorry for the delay ^^, thx for this fix :)