0

I am facing a strange kind of issue, which i never came across before.

I have seen an increased number of server errors in my webmaster tool, when investigating I found this issue.

the URL which is giving this error is a simply brand filtered URL. which should be ok, but when going on this URL it gives a server error.

https://www.smartteck.co.uk/pc-components/other?manufacturer=4664

after investigating this in more details found out that manufacturer 4664 is simply deleted from our list as it isnt available for sale any more. you can see the error on that url. summry here:

SQLSTATE[42S22]: Column not found: 1054 Unknown column 'e.min_price' in 'field list', query was: SELECT FLOOR((ROUND(((e.min_price +(e.min_price*CASE e.tax_class_id WHEN 2 THEN       0.2000  ELSE 0 END))) * 1, 2)) / 1) + 1 AS `range`, COUNT(*) AS `count` FROM `catalog_product_entity` AS `e`
 INNER JOIN `catalog_category_product_index` AS `cat_index` ON cat_index.product_id=e.entity_id AND cat_index.store_id=1 AND cat_index.visibility IN(2, 4) AND cat_index.category_id = '36'
 INNER JOIN `catalog_product_index_price` AS `price_index` ON price_index.entity_id = e.entity_id AND price_index.website_id = '1' AND price_index.customer_group_id = 0
 INNER JOIN `catalog_product_index_eav` AS `manufacturer_idx` ON manufacturer_idx.entity_id = e.entity_id AND manufacturer_idx.attribute_id = '81' AND manufacturer_idx.store_id = 1 AND manufacturer_idx.value = '4664' GROUP BY FLOOR((ROUND(((e.min_price +(e.min_price*CASE e.tax_class_id WHEN 2 THEN       0.2000  ELSE 0 END))) * 1, 2)) / 1) + 1 ORDER BY FLOOR((ROUND(((e.min_price +(e.min_price*CASE e.tax_class_id WHEN 2 THEN       0.2000  ELSE 0 END))) * 1, 2)) / 1) + 1 ASC

I have 2 concerns,

  1. showing the error log on front end, doesn't that put our site security on risk?
  2. and if our site can not found this URL or brand, why it isn't showing simple 404 page?

rest site is working fine and 404 page is working fine as well.

any help would be appreciated

  • I would guess this error is something that is cached before or after an index or product update. Make sure you are re-indexing and flushing cache when Magento prompts you to do it. – brentwpeterson Jul 7 '16 at 16:51
  • Hi reindex and cache are done every night so nothing like that – shafiq Jul 8 '16 at 18:11
0

404 page is rendered if a route can not be resolved to a controller action.

In your case, the action is found, but it executes a sql statement that throws an error.

You're right that this error should not be shown on the site in production.

If it is just an unformatted error, you should look at the display_errors setting in your Servers php.ini. This should be Off, 0 or something similar in production. In most distributions there is a description above the setting.

If this error is rendered in a Magento error Page, you should have a look at your errors/local.xml. If you delete (or at first move) it, I think the default setting is to only render an error code which can be looked up in the var/reports folder (of course only if you have server access).

the cause of the error itself might be an outdated index like @brentwpeterson already pointed out in the comments above.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.