Prestashop: Prestashop 1.7.6.4 Blank Page on add Product Back Office

Created on 25 Mar 2020  路  16Comments  路  Source: PrestaShop/PrestaShop

Describe the bug

Hello,

Whenever i want to create / edit product, i got a blank page on PROD (no errors in prestashop logs, php logs and apache logs) , if i switch to debug mode, the product page shows without just a few warnings and deprecated errors :

  • Warnings about "Translation not found"
  • Warning about "Warning: filemtime(): stat failed" in classes/Medai.php (I made a temporary patch on it just to verify I my problem was on it)
  • User Deprecated: AdminMarketing

I've already :

Clear cache (/var/cache/dev & /var/cache/prod)
Rebuild composer install
Clear all product (and related) in database
Desactivate all overrides, externals modules, features and combinations
In the formAction in ProductController.php, I can clearly see all the returned datas with no errors...

Expected behavior

Showing my add product in PROD mode (let it in debug mode is not a solution)

Steps to Reproduce

Steps to reproduce the behavior:

  1. Go to 'Products'
  2. Click on add a product

Screenshots

Blank screen

Additional information

  • PrestaShop version: 1.7.6.4
  • PHP version: 7.2.27
  • Nginx version : 1.17.8

Thank you for your help !

1.7.6.4 BO Bug Can't Reproduce Products

Most helpful comment

Hi @khouloudbelguith ,

I did it, and removed all my plugins (it is a copy of my current developping website).
I also checked the database for the hook id 489 (adminProductExtra), and I have no module associate... I stop my investigation here, but I could have ride up the bug to find the data which cause the error.
Strange, but my fix solved the problem ;)

All 16 comments

Hi @QuentinMaypic,

I did not manage to reproduce the issue with PS1.7.6.4 using Nginx v1.14.0.
I attached a screen record
https://drive.google.com/file/d/19qtwUhHmlJ7odS-0_s2nhAmhOEIqolVN/view?usp=sharing
Could you please try to run those command lines to remove the cache:
rm -fR /Projet_PrestaShop/var/cache/*

php -d memory_limit=-1 ./bin/console cache:clear
php -d memory_limit=-1 ./bin/console cache:clear --env=prod

Thanks to check and feedback.

Hello @khouloudbelguith

Thanks for your help.
I ran your comamnds, and I still have the problem...

[OK] Cache for the "dev" environment (debug=true) was successfully cleared.
[OK] Cache for the "prod" environment (debug=false) was successfully cleared.

@QuentinMaypic, did you tried with an incognito browser?
You need to force refresh the page, by pressing CTRL+F5 on Windows / Linux, Cmd+R on Mac OS while you are on this page.

Thanks!

@khouloudbelguith I tried, and also tried in incognito. No success...

@QuentinMaypic,

Desactivate all overrides, externals modules, features and combinations

Those options do not work.
image
as reported here:
https://github.com/PrestaShop/PrestaShop/issues/14596
https://github.com/PrestaShop/PrestaShop/issues/9965

Blank screen

We need to retrieve the PHP error log and the debug mode report in order to find out what's wrong.
Don't you know how to get this information? Please read the following article:
http://build.prestashop.com/howtos/misc/how-to-create-bug-report/

Thanks!

Hello,

So here are my logs :

[2020-03-25 15:42:28] php.INFO: User Deprecated: AdminMarketing is a deprecated tab since version 1.7.0 and "Default" will be removed in 1.7.1.. Upgrade module using the docs: http://build.prestashop.com/news/how-we-reorganized-main-menu-prestashop-1.7/. {"exception":"[object] (ErrorException(code: 0): User Deprecated: AdminMarketing is a deprecated tab since version 1.7.0 and \"Default\" will be removed in 1.7.1.. Upgrade module using the docs: http://build.prestashop.com/news/how-we-reorganized-main-menu-prestashop-1.7/. at /var/www/html/classes/Tab.php:348)"} [] [2020-03-25 15:42:28] php.DEBUG: Warning: filemtime(): stat failed for /var/www/html/admin968gwp3ac/themes/default/css/theme.css {"exception":"[object] (Symfony\\Component\\Debug\\Exception\\SilencedErrorContext: {\"severity\":2,\"file\":\"/var/www/html/classes/Media.php\",\"line\":269,\"trace\":[{\"file\":\"/var/www/html/classes/Media.php\",\"line\":240,\"function\":\"getMediaPath\",\"class\":\"MediaCore\",\"type\":\"::\"}],\"count\":1})"} [] [2020-03-25 15:42:28] security.DEBUG: Read existing security token from the session. {"key":"_security_main","token_class":"Symfony\\Component\\Security\\Core\\Authentication\\Token\\UsernamePasswordToken"} [] [2020-03-25 15:42:28] security.DEBUG: User was reloaded from a user provider. {"provider":"PrestaShopBundle\\Security\\Admin\\EmployeeProvider","username":"[email protected]"} [] [2020-03-25 15:42:28] php.INFO: User Deprecated: Implementing "Symfony\Component\HttpKernel\DataCollector\DataCollectorInterface" without the "reset()" method is deprecated since Symfony 3.4 and will be unsupported in 4.0 for class "Csa\Bundle\GuzzleBundle\DataCollector\GuzzleCollector". {"exception":"[object] (ErrorException(code: 0): User Deprecated: Implementing \"Symfony\\Component\\HttpKernel\\DataCollector\\DataCollectorInterface\" without the \"reset()\" method is deprecated since Symfony 3.4 and will be unsupported in 4.0 for class \"Csa\\Bundle\\GuzzleBundle\\DataCollector\\GuzzleCollector\". at /var/www/html/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Profiler/Profiler.php:215)"} [] [2020-03-25 15:42:28] security.DEBUG: Stored the security token in the session. {"key":"_security_main"} [] [2020-03-25 15:42:28] doctrine.DEBUG: SELECT name FROM nch_module WHERE active = 1 [] [] [2020-03-25 15:42:28] doctrine.DEBUG: SELECT name FROM nch_module WHERE active = 1 [] [] [2020-03-25 15:42:28] translation.WARNING: Translation not found. {"id":"Module ERP Negoce CHR","domain":"messages","locale":"fr-FR"} [] [2020-03-25 15:42:28] translation.WARNING: Translation not found. {"id":"Module installant la passerelle avec Sellsy.","domain":"messages","locale":"fr-FR"} [] [2020-03-25 15:42:28] translation.WARNING: Translation not found. {"id":"Module ERP Negoce CHR","domain":"messages","locale":"fr-FR"} [] [2020-03-25 15:42:28] translation.WARNING: Translation not found. {"id":"Etes-vous s没r de vouloir d茅sinstaller le module ?","domain":"messages","locale":"fr-FR"} [] [2020-03-25 15:42:28] translation.WARNING: Translation not found. {"id":"Module installant la passerelle avec Sellsy.","domain":"messages","locale":"fr-FR"} [] [2020-03-25 15:42:28] translation.WARNING: Translation not found. {"id":"Etes-vous s没r de vouloir d茅sinstaller le module ?","domain":"messages","locale":"fr-FR"} [] [2020-03-25 15:42:28] translation.WARNING: Translation not found. {"id":"PrestaBlog","domain":"messages","locale":"fr-FR"} [] [2020-03-25 15:42:28] translation.WARNING: Translation not found. {"id":"PrestaBlog","domain":"messages","locale":"fr-FR"} [] [2020-03-25 15:42:28] translation.WARNING: Translation not found. {"id":"Advanced Search 4","domain":"messages","locale":"fr-FR"} [] [2020-03-25 15:42:28] translation.WARNING: Translation not found. {"id":"Advanced Search 4","domain":"messages","locale":"fr-FR"} [] [2020-03-25 15:42:28] translation.WARNING: Translation not found. {"id":"Image","domain":"messages","locale":"fr-FR"} [] [2020-03-25 15:42:28] translation.WARNING: Translation not found. {"id":"Image","domain":"messages","locale":"fr-FR"} [] [2020-03-25 15:42:28] doctrine.DEBUG: SELECT name FROM nch_module WHERE active = 1 [] [] [2020-03-25 15:42:28] translation.WARNING: Translation not found. {"id":"Module ERP Negoce CHR","domain":"messages","locale":"fr-FR"} [] [2020-03-25 15:42:28] translation.WARNING: Translation not found. {"id":"Module installant la passerelle avec Sellsy.","domain":"messages","locale":"fr-FR"} [] [2020-03-25 15:42:28] translation.WARNING: Translation not found. {"id":"Etes-vous s没r de vouloir d茅sinstaller le module ?","domain":"messages","locale":"fr-FR"} [] [2020-03-25 15:42:28] translation.WARNING: Translation not found. {"id":"PrestaBlog","domain":"messages","locale":"fr-FR"} [] [2020-03-25 15:42:28] translation.WARNING: Translation not found. {"id":"Advanced Search 4","domain":"messages","locale":"fr-FR"} [] [2020-03-25 15:42:28] translation.WARNING: Translation not found. {"id":"Image","domain":"messages","locale":"fr-FR"} [] [2020-03-25 15:42:28] doctrine.DEBUG: SELECT name FROM nch_module WHERE active = 1 [] [] [2020-03-25 15:42:28] translation.WARNING: Translation not found. {"id":"Module ERP Negoce CHR","domain":"messages","locale":"fr-FR"} [] [2020-03-25 15:42:28] translation.WARNING: Translation not found. {"id":"Module installant la passerelle avec Sellsy.","domain":"messages","locale":"fr-FR"} [] [2020-03-25 15:42:28] translation.WARNING: Translation not found. {"id":"Etes-vous s没r de vouloir d茅sinstaller le module ?","domain":"messages","locale":"fr-FR"} [] [2020-03-25 15:42:28] translation.WARNING: Translation not found. {"id":"PrestaBlog","domain":"messages","locale":"fr-FR"} [] [2020-03-25 15:42:28] translation.WARNING: Translation not found. {"id":"Advanced Search 4","domain":"messages","locale":"fr-FR"} [] [2020-03-25 15:42:28] translation.WARNING: Translation not found. {"id":"Image","domain":"messages","locale":"fr-FR"} [] [2020-03-25 15:42:31] doctrine.DEBUG: SELECT name FROM nch_module WHERE active = 1 [] [] [2020-03-25 15:42:31] request.INFO: Matched route "admin_performance_save". {"route":"admin_performance_save","route_parameters":{"_controller":"PrestaShopBundle\\Controller\\Admin\\Configure\\AdvancedParameters\\PerformanceController::processFormAction","_legacy_controller":"AdminPerformance","_legacy_link":"AdminPerformance:update","_route":"admin_performance_save"},"request_uri":"https://dev2.negoce-chr.com/admin968gwp3ac/index.php/configure/advanced/performance/?_token=2MssXFESZ_INPXEsVBtEC0ZUTYOuVH7evyoPSjI7rzc","method":"POST"} [] [2020-03-25 15:42:31] security.DEBUG: Read existing security token from the session. {"key":"_security_main","token_class":"Symfony\\Component\\Security\\Core\\Authentication\\Token\\UsernamePasswordToken"} [] [2020-03-25 15:42:31] security.DEBUG: User was reloaded from a user provider. {"provider":"PrestaShopBundle\\Security\\Admin\\EmployeeProvider","username":"[email protected]"} [] [2020-03-25 15:42:31] doctrine.DEBUG: SELECT * FROM nch_memcached_servers [] [] [2020-03-25 15:42:31] php.INFO: User Deprecated: Implementing "Symfony\Component\HttpKernel\DataCollector\DataCollectorInterface" without the "reset()" method is deprecated since Symfony 3.4 and will be unsupported in 4.0 for class "Csa\Bundle\GuzzleBundle\DataCollector\GuzzleCollector". {"exception":"[object] (ErrorException(code: 0): User Deprecated: Implementing \"Symfony\\Component\\HttpKernel\\DataCollector\\DataCollectorInterface\" without the \"reset()\" method is deprecated since Symfony 3.4 and will be unsupported in 4.0 for class \"Csa\\Bundle\\GuzzleBundle\\DataCollector\\GuzzleCollector\". at /var/www/html/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Profiler/Profiler.php:215)"} [] [2020-03-25 15:42:31] security.DEBUG: Stored the security token in the session. {"key":"_security_main"} []

Voici aussi les infos phppsinfos.php :
image

image

Hope this can help ?

PS : There is nothing inside nginx logs, netiher php-fpm.log...

Hi @QuentinMaypic ,
Are you using a module that has a feature on the product page in BO ?
Thanks!

Hi @florine2623 ,
I deactivate all plugins (still installed), but I still have the problem...

Ok so I focused on the chrome console, and I see the is 2 urls called when I click on add product.
First :
https://dev2.negoce-chr.com/admin968gwp3ac/index.php/sell/catalog/products/new?_token=thetoken
Then :
https://dev2.negoce-chr.com/admin968gwp3ac/index.php/sell/catalog/products/24?_token=thetoken

The first one response is a 302, so maybe here is my problem (nginx conf probably).

Despite our several trials, we could not reproduce your issue with the provided information.
It seems that your issue is not a PrestaShop's core bug but most likely a server configuration or customization problem.
If you want, you can take a support plan so the team can dig into your issue more : https://addons.prestashop.com/en/support/16298-prestashop-support-plan.html

Ok so I focused on the chrome console, and I see the is 2 urls called when I click on add product.
First :
https://dev2.negoce-chr.com/admin968gwp3ac/index.php/sell/catalog/products/new?_token=thetoken
Then :
https://dev2.negoce-chr.com/admin968gwp3ac/index.php/sell/catalog/products/24?_token=thetoken

The first one response is a 302, so maybe here is my problem (nginx conf probably).

Actually it works the same way with debug mode, and it is working...
Where can I find the last nginx configuration for prestashop ?

Ok so I finally found the problem.
Everything works find except from the twig part in product.html.twig.
I remove part of the file and found that the method "renderHooksArray" from HookExtension class provoke my error.
I change in the method "ob_clean()" with "ob_end_clean()" and it is working well now.
I tried to debug a little and found that the "dispatchRenderingWithParameters" method return a module called "call_489_0", 489 is the hook "AdminProductExtra".
Hope my answer can help !

Hi @QuentinMaypic,

You can navigate to your BO => Design => Position page => Search for the hook to show which module is transplanting to this hook.
For example
image

Thanks!

Hi @khouloudbelguith ,

I did it, and removed all my plugins (it is a copy of my current developping website).
I also checked the database for the hook id 489 (adminProductExtra), and I have no module associate... I stop my investigation here, but I could have ride up the bug to find the data which cause the error.
Strange, but my fix solved the problem ;)

Just the same error like you... after understand/debug what the hell was happening I could find the exact words to find your solution.
Applied and all working, changing ob_clean to ob_end_clean solve the problem. I couldn't get why the function was returning a 0 array.
You save me!! Thanks!

Was this page helpful?
0 / 5 - 0 ratings