Part-DB-server icon indicating copy to clipboard operation
Part-DB-server copied to clipboard

Error 500 when I click on a part

Open kgalinec opened this issue 8 months ago • 8 comments

Describe the bug A clear and concise description of what the bug is. Whenever I try to click on a part and open it, it gives a error 500. The logs say something about the digikey provider. I've been having issues with the database recently, now it seems to connect normally but now I'm having this problem. Logs are shown below. My Part-DB instance and the database are running in Docker. I've been using Part-DB for quite a while and had no issues. I don't know what happened, I also tried some other versions, still didn't work.

To Reproduce Steps to reproduce the behavior: Try to open a part, and the error 500 is shown.

Screenshots

Image

Server Side

  • Part-DB Version: [e.g. Part-DB 1.0 (for dev versions commit hash is useful] 1.17.0
  • PHP Version: [e.g. PHP 7.4.3] 8.3.19
  • Database Server [e.g. MySQL 5.7] MySQL 8.0.42

Additional context Add any other context about the problem here. Logs from the docker container. partdb | "} {"token":null,"url":"/en/part/330/info","ip":"172.18.0.2","http_method":"GET","server":"warehouse.chriggle.com","referrer":"https://warehouse.chriggle.com/en/category/4/parts"} partdb | [2025-04-24T18:50:30.820442+00:00] request.CRITICAL: Uncaught PHP Exception Twig\Error\RuntimeError: "An exception has been thrown during the rendering of a template ("Provider with key digikey already registered")." at _extended_infos.html.twig line 73 {"exception":"[object] (Twig\\Error\\RuntimeError(code: 0): An exception has been thrown during the rendering of a template (\"Provider with key digikey already registered\"). at /var/www/html/templates/parts/info/_extended_infos.html.twig:73) partdb | [stacktrace] partdb | #0 /var/www/html/var/cache/docker/twig/af/afab090124cf1d11f1cf19a050a992a9.php(464): Twig\\Template->yield() partdb | #1 /var/www/html/vendor/twig/twig/src/Template.php(432): __TwigTemplate_28e2e5c8bda01503431df505ccb0d91a->block_card_content() partdb | #2 /var/www/html/var/cache/docker/twig/a0/a0e74914a0b0d368e58dfb38ffc401a9.php(168): Twig\\Template->yieldBlock() partdb | #3 /var/www/html/vendor/twig/twig/src/Template.php(432): __TwigTemplate_8c5629aed6680842d1309abfc15854b3->block_card_body() partdb | #4 /var/www/html/var/cache/docker/twig/a0/a0e74914a0b0d368e58dfb38ffc401a9.php(80): Twig\\Template->yieldBlock() partdb | #5 /var/www/html/vendor/twig/twig/src/Template.php(432): __TwigTemplate_8c5629aed6680842d1309abfc15854b3->block_content() partdb | #6 /var/www/html/var/cache/docker/twig/0c/0ce5d3db9dd439df3f057c818e284615.php(297): Twig\\Template->yieldBlock() partdb | #7 /var/www/html/vendor/twig/twig/src/Template.php(432): __TwigTemplate_ba877508bb3bbc32ecbb12cf42786a0d->block_body() partdb | #8 /var/www/html/var/cache/docker/twig/0c/0ce5d3db9dd439df3f057c818e284615.php(138): Twig\\Template->yieldBlock() partdb | #9 /var/www/html/vendor/twig/twig/src/Template.php(388): __TwigTemplate_ba877508bb3bbc32ecbb12cf42786a0d->doDisplay() partdb | #10 /var/www/html/var/cache/docker/twig/a0/a0e74914a0b0d368e58dfb38ffc401a9.php(56): Twig\\Template->yield() partdb | #11 /var/www/html/vendor/twig/twig/src/Template.php(388): __TwigTemplate_8c5629aed6680842d1309abfc15854b3->doDisplay() partdb | #12 /var/www/html/var/cache/docker/twig/af/afab090124cf1d11f1cf19a050a992a9.php(50): Twig\\Template->yield() partdb | #13 /var/www/html/vendor/twig/twig/src/Template.php(388): __TwigTemplate_28e2e5c8bda01503431df505ccb0d91a->doDisplay() partdb | #14 /var/www/html/vendor/twig/twig/src/Template.php(344): Twig\\Template->yield() partdb | #15 /var/www/html/vendor/twig/twig/src/Template.php(359): Twig\\Template->display() partdb | #16 /var/www/html/vendor/twig/twig/src/TemplateWrapper.php(51): Twig\\Template->render() partdb | #17 /var/www/html/vendor/twig/twig/src/Environment.php(334): Twig\\TemplateWrapper->render() partdb | #18 /var/www/html/vendor/symfony/framework-bundle/Controller/AbstractController.php(448): Twig\\Environment->render() partdb | #19 /var/www/html/vendor/symfony/framework-bundle/Controller/AbstractController.php(453): Symfony\\Bundle\\FrameworkBundle\\Controller\\AbstractController->doRenderView() partdb | #20 /var/www/html/vendor/symfony/framework-bundle/Controller/AbstractController.php(253): Symfony\\Bundle\\FrameworkBundle\\Controller\\AbstractController->doRender() partdb | #21 /var/www/html/src/Controller/PartController.php(114): Symfony\\Bundle\\FrameworkBundle\\Controller\\AbstractController->render() partdb | #22 /var/www/html/vendor/symfony/http-kernel/HttpKernel.php(181): App\\Controller\\PartController->show() partdb | #23 /var/www/html/vendor/symfony/http-kernel/HttpKernel.php(76): Symfony\\Component\\HttpKernel\\HttpKernel->handleRaw() partdb | #24 /var/www/html/vendor/symfony/http-kernel/Kernel.php(197): Symfony\\Component\\HttpKernel\\HttpKernel->handle() partdb | #25 /var/www/html/vendor/symfony/runtime/Runner/Symfony/HttpKernelRunner.php(35): Symfony\\Component\\HttpKernel\\Kernel->handle() partdb | #26 /var/www/html/vendor/autoload_runtime.php(29): Symfony\\Component\\Runtime\\Runner\\Symfony\\HttpKernelRunner->run() partdb | #27 /var/www/html/public/index.php(5): require_once('...') partdb | #28 {main} partdb | [previous exception] [object] (LogicException(code: 0): Provider with key digikey already registered at /var/www/html/src/Services/InfoProviderSystem/ProviderRegistry.php:75) partdb | [stacktrace] partdb | #0 /var/www/html/src/Services/InfoProviderSystem/ProviderRegistry.php(111): App\\Services\\InfoProviderSystem\\ProviderRegistry->initStructures() partdb | #1 /var/www/html/src/Twig/InfoProviderExtension.php(67): App\\Services\\InfoProviderSystem\\ProviderRegistry->getProviderByKey() partdb | #2 /var/www/html/var/cache/docker/twig/43/43bfe8e52dce915a9ec18815d8aec329.php(217): App\\Twig\\InfoProviderExtension->getInfoProviderName() partdb | #3 /var/www/html/vendor/twig/twig/src/Template.php(388): __TwigTemplate_c66e6e8607c518312e718dffee1d42bb->doDisplay() partdb | #4 /var/www/html/var/cache/docker/twig/af/afab090124cf1d11f1cf19a050a992a9.php(464): Twig\\Template->yield() partdb | #5 /var/www/html/vendor/twig/twig/src/Template.php(432): __TwigTemplate_28e2e5c8bda01503431df505ccb0d91a->block_card_content() partdb | #6 /var/www/html/var/cache/docker/twig/a0/a0e74914a0b0d368e58dfb38ffc401a9.php(168): Twig\\Template->yieldBlock() partdb | #7 /var/www/html/vendor/twig/twig/src/Template.php(432): __TwigTemplate_8c5629aed6680842d1309abfc15854b3->block_card_body() partdb | #8 /var/www/html/var/cache/docker/twig/a0/a0e74914a0b0d368e58dfb38ffc401a9.php(80): Twig\\Template->yieldBlock() partdb | #9 /var/www/html/vendor/twig/twig/src/Template.php(432): __TwigTemplate_8c5629aed6680842d1309abfc15854b3->block_content() partdb | #10 /var/www/html/var/cache/docker/twig/0c/0ce5d3db9dd439df3f057c818e284615.php(297): Twig\\Template->yieldBlock() partdb | #11 /var/www/html/vendor/twig/twig/src/Template.php(432): __TwigTemplate_ba877508bb3bbc32ecbb12cf42786a0d->block_body() partdb | #12 /var/www/html/var/cache/docker/twig/0c/0ce5d3db9dd439df3f057c818e284615.php(138): Twig\\Template->yieldBlock() partdb | #13 /var/www/html/vendor/twig/twig/src/Template.php(388): __TwigTemplate_ba877508bb3bbc32ecbb12cf42786a0d->doDisplay() partdb | #14 /var/www/html/var/cache/docker/twig/a0/a0e74914a0b0d368e58dfb38ffc401a9.php(56): Twig\\Template->yield() partdb | #15 /var/www/html/vendor/twig/twig/src/Template.php(388): __TwigTemplate_8c5629aed6680842d1309abfc15854b3->doDisplay() partdb | #16 /var/www/html/var/cache/docker/twig/af/afab090124cf1d11f1cf19a050a992a9.php(50): Twig\\Template->yield() partdb | #17 /var/www/html/vendor/twig/twig/src/Template.php(388): __TwigTemplate_28e2e5c8bda01503431df505ccb0d91a->doDisplay() partdb | #18 /var/www/html/vendor/twig/twig/src/Template.php(344): Twig\\Template->yield() partdb | #19 /var/www/html/vendor/twig/twig/src/Template.php(359): Twig\\Template->display() partdb | #20 /var/www/html/vendor/twig/twig/src/TemplateWrapper.php(51): Twig\\Template->render() partdb | #21 /var/www/html/vendor/twig/twig/src/Environment.php(334): Twig\\TemplateWrapper->render() partdb | #22 /var/www/html/vendor/symfony/framework-bundle/Controller/AbstractController.php(448): Twig\\Environment->render() partdb | #23 /var/www/html/vendor/symfony/framework-bundle/Controller/AbstractController.php(453): Symfony\\Bundle\\FrameworkBundle\\Controller\\AbstractController->doRenderView() partdb | #24 /var/www/html/vendor/symfony/framework-bundle/Controller/AbstractController.php(253): Symfony\\Bundle\\FrameworkBundle\\Controller\\AbstractController->doRender() partdb | #25 /var/www/html/src/Controller/PartController.php(114): Symfony\\Bundle\\FrameworkBundle\\Controller\\AbstractController->render() partdb | #26 /var/www/html/vendor/symfony/http-kernel/HttpKernel.php(181): App\\Controller\\PartController->show() partdb | #27 /var/www/html/vendor/symfony/http-kernel/HttpKernel.php(76): Symfony\\Component\\HttpKernel\\HttpKernel->handleRaw() partdb | #28 /var/www/html/vendor/symfony/http-kernel/Kernel.php(197): Symfony\\Component\\HttpKernel\\HttpKernel->handle() partdb | #29 /var/www/html/vendor/symfony/runtime/Runner/Symfony/HttpKernelRunner.php(35): Symfony\\Component\\HttpKernel\\Kernel->handle() partdb | #30 /var/www/html/vendor/autoload_runtime.php(29): Symfony\\Component\\Runtime\\Runner\\Symfony\\HttpKernelRunner->run() partdb | #31 /var/www/html/public/index.php(5): require_once('...') partdb | #32 {main} partdb | "} {"token":null,"url":"/en/part/330/info","ip":"172.18.0.2","http_method":"GET","server":"warehouse.chriggle.com","referrer":"https://warehouse.chriggle.com/en/category/4/parts"} partdb | [2025-04-24T18:50:30.835822+00:00] deprecation.INFO: User Deprecated: Since nelmio/security-bundle 3.4.0: The "Nelmio\SecurityBundle\EventListener\XssProtectionListener" class is deprecated, use Content Security Policy without allowing "unsafe-inline" scripts instead. {"exception":"[object] (ErrorException(code: 0): User Deprecated: Since nelmio/security-bundle 3.4.0: The \"Nelmio\\SecurityBundle\\EventListener\\XssProtectionListener\" class is deprecated, use Content Security Policy without allowing \"unsafe-inline\" scripts instead. at /var/www/html/vendor/nelmio/security-bundle/src/EventListener/XssProtectionListener.php:35) partdb | [stacktrace] partdb | #0 /var/www/html/vendor/nelmio/security-bundle/src/EventListener/XssProtectionListener.php(80): Nelmio\\SecurityBundle\\EventListener\\XssProtectionListener->__construct() partdb | #1 /var/www/html/var/cache/docker/Container91F3HRl/App_KernelDockerContainer.php(2044): Nelmio\\SecurityBundle\\EventListener\\XssProtectionListener::fromConfig() partdb | #2 /var/www/html/var/cache/docker/Container91F3HRl/App_KernelDockerContainer.php(421): Container91F3HRl\\App_KernelDockerContainer::getNelmioSecurity_XssProtectionListenerService() partdb | #3 /var/www/html/vendor/symfony/event-dispatcher/EventDispatcher.php(257): Container91F3HRl\\App_KernelDockerContainer::Container91F3HRl\\{closure}() partdb | #4 /var/www/html/vendor/symfony/event-dispatcher/EventDispatcher.php(220): Symfony\\Component\\EventDispatcher\\EventDispatcher::Symfony\\Component\\EventDispatcher\\{closure}() partdb | #5 /var/www/html/vendor/symfony/event-dispatcher/EventDispatcher.php(56): Symfony\\Component\\EventDispatcher\\EventDispatcher->callListeners() partdb | #6 /var/www/html/vendor/symfony/http-kernel/HttpKernel.php(214): Symfony\\Component\\EventDispatcher\\EventDispatcher->dispatch() partdb | #7 /var/www/html/vendor/symfony/http-kernel/HttpKernel.php(202): Symfony\\Component\\HttpKernel\\HttpKernel->filterResponse() partdb | #8 /var/www/html/vendor/symfony/http-kernel/HttpKernel.php(76): Symfony\\Component\\HttpKernel\\HttpKernel->handleRaw() partdb | #9 /var/www/html/vendor/symfony/http-kernel/EventListener/ErrorListener.php(117): Symfony\\Component\\HttpKernel\\HttpKernel->handle() partdb | #10 /var/www/html/vendor/symfony/event-dispatcher/EventDispatcher.php(260): Symfony\\Component\\HttpKernel\\EventListener\\ErrorListener->onKernelException() partdb | #11 /var/www/html/vendor/symfony/event-dispatcher/EventDispatcher.php(220): Symfony\\Component\\EventDispatcher\\EventDispatcher::Symfony\\Component\\EventDispatcher\\{closure}() partdb | #12 /var/www/html/vendor/symfony/event-dispatcher/EventDispatcher.php(56): Symfony\\Component\\EventDispatcher\\EventDispatcher->callListeners() partdb | #13 /var/www/html/vendor/symfony/http-kernel/HttpKernel.php(239): Symfony\\Component\\EventDispatcher\\EventDispatcher->dispatch() partdb | #14 /var/www/html/vendor/symfony/http-kernel/HttpKernel.php(91): Symfony\\Component\\HttpKernel\\HttpKernel->handleThrowable() partdb | #15 /var/www/html/vendor/symfony/http-kernel/Kernel.php(197): Symfony\\Component\\HttpKernel\\HttpKernel->handle() partdb | #16 /var/www/html/vendor/symfony/runtime/Runner/Symfony/HttpKernelRunner.php(35): Symfony\\Component\\HttpKernel\\Kernel->handle() partdb | #17 /var/www/html/vendor/autoload_runtime.php(29): Symfony\\Component\\Runtime\\Runner\\Symfony\\HttpKernelRunner->run() partdb | #18 /var/www/html/public/index.php(5): require_once() partdb | #19 {main} partdb | "} {"token":null,"url":"/en/part/330/info","ip":"172.18.0.2","http_method":"GET","server":"warehouse.chriggle.com","referrer":"https://warehouse.chriggle.com/en/category/4/parts"} partdb | 172.18.0.2 - - [24/Apr/2025:18:50:30 +0000] "GET /en/part/330/info HTTP/1.1" 500 5973 "https://warehouse.chriggle.com/en/category/4/parts" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.0.0 Safari/537.36" partdb | - - 24/Apr/2025:18:50:30 +0000 "GET /index.php" 500

kgalinec avatar Apr 24 '25 19:04 kgalinec

Have the same error symptom when i migrate the docker image from jbtronics/part-db1:1.15 to jbtronics/part-db1:1.16. or :latest

jurviz avatar May 04 '25 12:05 jurviz

Docker log from latest migration to version 1.16 partdb-2025-05-04T12-27-11.log

jurviz avatar May 04 '25 12:05 jurviz

I tried to do the migration after starting version 1.15 as described in the installation doc. Output here:

Image

After the migration the symptom changes and i get an 500 error immediately.

Image

latest log is attached

partdb-2025-05-04T12-56-01.log

jurviz avatar May 04 '25 12:05 jurviz

Could reproduce since i have copy of app.db before migration.

jurviz avatar May 04 '25 13:05 jurviz

Docker log from latest migration to version 1.16 partdb-2025-05-04T12-27-11.log

Based on the logs you have a different error, mine said something about a missing Digikey provider even though I didn't use it... I fixed it by changing the code regarding the providers, and it seems to work fine now... Hopefully this will be fixed

kgalinec avatar May 04 '25 16:05 kgalinec

I did a fallback to 1.15.2 with restored copy of sqlite db. I also tried to go migration path to 1.17 using the experimental image with another docker container, but can't get it to work either. The documentation is very sparse for this path. I use part-db only for my hobby projects, so nothing critical.

jurviz avatar May 04 '25 20:05 jurviz

The error is solved for me by installing version 1.17 in a new docker container with an empty sqlite db, stopping the container after db init and copying the database from the 1.15 volume into the new volume. Automigration was set to true. After restart of the 1.17 container the application is working now.

jurviz avatar May 05 '25 12:05 jurviz

This is also not working for me when try to search for parts using API calls like Mouser. It works for the web scraping solutions

I'm on 1.17, too

Basti-Fantasti avatar May 07 '25 20:05 Basti-Fantasti