I am building a laravel application and everything seems to be working fine, except for the fact that I keep getting these errors appearing in the log file continuously. I mean they are showing up every few minutes, sometimes more often, sometimes less - it's making harder to find real problems in the log file. Except of these problems, they aren't really causing any problems - I have an App::missing method to take care of real users.
Do you have any idea of where to look for the solution?
[2014-05-15 19:58:20] local.ERROR: exception 'Symfony\Component\HttpKernel\Exception\NotFoundHttpException' with message 'Controller method not found.' in /Applications/MAMP/htdocs/gran.pw/vendor/laravel/framework/src/Illuminate/Routing/Controller.php:254
Stack trace:
#0 [internal function]: Illuminate\Routing\Controller->missingMethod(Array)
#1 /Applications/MAMP/htdocs/gran.pw/vendor/laravel/framework/src/Illuminate/Routing/Controller.php(231): call_user_func_array(Array, Array)
#2 /Applications/MAMP/htdocs/gran.pw/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(93): Illuminate\Routing\Controller->callAction('missingMethod', Array)
#3 /Applications/MAMP/htdocs/gran.pw/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(62): Illuminate\Routing\ControllerDispatcher->call(Object(HomeController), Object(Illuminate\Routing\Route), 'missingMethod')
#4 /Applications/MAMP/htdocs/gran.pw/vendor/laravel/framework/src/Illuminate/Routing/Router.php(934): Illuminate\Routing\ControllerDispatcher->dispatch(Object(Illuminate\Routing\Route), Object(Illuminate\Http\Request), 'HomeController', 'missingMethod')
#5 [internal function]: Illuminate\Routing\Router->Illuminate\Routing\{closure}(Array)
#6 /Applications/MAMP/htdocs/gran.pw/vendor/laravel/framework/src/Illuminate/Routing/Route.php(105): call_user_func_array(Object(Closure), Array)
#7 /Applications/MAMP/htdocs/gran.pw/vendor/laravel/framework/src/Illuminate/Routing/Router.php(1000): Illuminate\Routing\Route->run(Object(Illuminate\Http\Request))
#8 /Applications/MAMP/htdocs/gran.pw/vendor/laravel/framework/src/Illuminate/Routing/Router.php(968): Illuminate\Routing\Router->dispatchToRoute(Object(Illuminate\Http\Request))
#9 /Applications/MAMP/htdocs/gran.pw/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(738): Illuminate\Routing\Router->dispatch(Object(Illuminate\Http\Request))
#10 /Applications/MAMP/htdocs/gran.pw/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(708): Illuminate\Foundation\Application->dispatch(Object(Illuminate\Http\Request))
#11 /Applications/MAMP/htdocs/gran.pw/vendor/laravel/framework/src/Illuminate/Http/FrameGuard.php(38): Illuminate\Foundation\Application->handle(Object(Illuminate\Http\Request), 1, true)
#12 /Applications/MAMP/htdocs/gran.pw/vendor/laravel/framework/src/Illuminate/Session/Middleware.php(72): Illuminate\Http\FrameGuard->handle(Object(Illuminate\Http\Request), 1, true)
#13 /Applications/MAMP/htdocs/gran.pw/vendor/laravel/framework/src/Illuminate/Cookie/Queue.php(47): Illuminate\Session\Middleware->handle(Object(Illuminate\Http\Request), 1, true)
#14 /Applications/MAMP/htdocs/gran.pw/vendor/laravel/framework/src/Illuminate/Cookie/Guard.php(51): Illuminate\Cookie\Queue->handle(Object(Illuminate\Http\Request), 1, true)
#15 /Applications/MAMP/htdocs/gran.pw/vendor/stack/builder/src/Stack/StackedHttpKernel.php(23): Illuminate\Cookie\Guard->handle(Object(Illuminate\Http\Request), 1, true)
#16 /Applications/MAMP/htdocs/gran.pw/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(606): Stack\StackedHttpKernel->handle(Object(Illuminate\Http\Request))
#17 /Applications/MAMP/htdocs/gran.pw/public/index.php(49): Illuminate\Foundation\Application->run()
#18 {main} [] []
Its a 404 for a non existant url.
i.e. http://example.com/this-url-does-not-exist
To see which URL is actually causing the 404 - add this to your filters file
App::missing(function($exception)
{
Log::error('Missing URL was: ' . Request::fullUrl());
});
It will record the URL that any exception occurs on in your logs.
It is most likely due to either a search engine bot trying to search for old links, or could be some broken links within your application.
I did mention this to Taylor as a possible bug in Laravel 4.1 - that the http exception does not record the missing url - but it was closed at the time. I might re-open it as I'm sure it is a bug (since old 404 did record the url).
Looks like your HomeController is not extending Laravel's controller:
class HomeController extends Controller {
}
Because the method missingMethod is missing from yours and this one is in the Laravel Controller base class.
Related
So this question is based more on why only part of an error is showing that the error itself (although it would be great if someone could also solve the error as well).
However, I have a logging function in Laravel that emails an error notification as well as logs it. (Admittedly, it's probably not the best practice, although it tends to serve its purpose). My code for sending the error email is as shown below...
Exceptions\Handler.php
public function report(Exception $e)
{
\Mail::send('emails.error', ['error' => $e], function ($m) use ($e) {
$m->from('noreply#mydomain.com', 'MMC API | Laravel Error ');
$m->to('me#mydomain.com')
->cc('someoneelse#mydomain.com')
->subject($e->getMessage());
});
parent::report($e);
}
resources\views\emails\error.blade.php
<p><strong>Message: </strong>{{ $error->getMessage() }}</p>
<p><strong>File: </strong>{{ $error->getFile() }}</p>
<p><strong>Trace: </strong>{{$error->getTraceAsString()}}</p>
However, I just recieved and error without the Message from the getMessage() section of the email (as shown below)...
Message:
File: C:\api\vendor\laravel\framework\src\Illuminate\Routing\RouteCollection.php
Trace:
#0 C:\api\vendor\laravel\framework\src\Illuminate\Routing\Router.php(823): Illuminate\Routing\RouteCollection->match(Object(Illuminate\Http\Request))
#1 C:\api\vendor\laravel\framework\src\Illuminate\Routing\Router.php(691): Illuminate\Routing\Router->findRoute(Object(Illuminate\Http\Request))
#2 C:\api\vendor\laravel\framework\src\Illuminate\Routing\Router.php(675): Illuminate\Routing\Router->dispatchToRoute(Object(Illuminate\Http\Request))
#3 C:\api\vendor\laravel\framework\src\Illuminate\Foundation\Http\Kernel.php(246): Illuminate\Routing\Router->dispatch(Object(Illuminate\Http\Request))
#4 [internal function]: Illuminate\Foundation\Http\Kernel->Illuminate\Foundation\Http\{closure}(Object(Illuminate\Http\Request))
#5 C:\api\vendor\laravel\framework\src\Illuminate\Routing\Pipeline.php(52): call_user_func(Object(Closure), Object(Illuminate\Http\Request))
#6 C:\api\vendor\barryvdh\laravel-cors\src\HandleCors.php(34): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#7 [internal function]: Barryvdh\Cors\HandleCors->handle(Object(Illuminate\Http\Request), Object(Closure))
#8 C:\api\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(124): call_user_func_array(Array, Array)
#9 [internal function]: Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#10 C:\api\vendor\laravel\framework\src\Illuminate\Routing\Pipeline.php(32): call_user_func(Object(Closure), Object(Illuminate\Http\Request))
#11 C:\api\vendor\laravel\framework\src\Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode.php(44): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#12 [internal function]: Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode->handle(Object(Illuminate\Http\Request), Object(Closure))
#13 C:\api\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(124): call_user_func_array(Array, Array)
#14 [internal function]: Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#15 C:\api\vendor\laravel\framework\src\Illuminate\Routing\Pipeline.php(32): call_user_func(Object(Closure), Object(Illuminate\Http\Request))
#16 [internal function]: Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#17 C:\api\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(103): call_user_func(Object(Closure), Object(Illuminate\Http\Request))
#18 C:\api\vendor\laravel\framework\src\Illuminate\Foundation\Http\Kernel.php(132): Illuminate\Pipeline\Pipeline->then(Object(Closure))
#19 C:\api\vendor\laravel\framework\src\Illuminate\Foundation\Http\Kernel.php(99): Illuminate\Foundation\Http\Kernel->sendRequestThroughRouter(Object(Illuminate\Http\Request))
#20 C:\api\public\index.php(54): Illuminate\Foundation\Http\Kernel->handle(Object(Illuminate\Http\Request))
#21 {main}
It seems like there might have possibly been something wrong with the Barryvdh\Cors\HandleCors- which I use to enable a cross-domain API or possibly a web crawler trying to poke around a different route than what I allow.
For my original question though: is it possible to have an error without a Message by which I could get it with getMessage()
And bonus question: is it possible to diagnose the Route error I'm getting with the limited information I have available?
The answer to your original question is yes, you can have an Exception that does not have a message.
The answer to your bonus question is yes, you can get an educated guess based on the current information. When you do this, this actually shows you the answer to your original question.
From the stacktrace, it shows that the last method called (from line #0) was Illuminate\Routing\RouteCollection->match. If you go into the code and look at this method, you can see that, if no route is matched, it calls throw new NotFoundHttpException;.
Given that this is the only Exception explicitly thrown by this method, as well as the fact that it is thrown without setting a message, it is a pretty good guess that this is your error.
So, basically, someone attempted to go to a route that didn't exist.
I have seen this kind of error before but not for mailing. But I can tell you that the error is from your Route its either you are trying to access a Route method that does not exist or you are using the wrong Route method
I've got a site set up with the base Socialengine setup going. I've installed most of the SocialEngineAddon suite of plugins, and for some reason, the Advanced Events plugin throws this error when I try and create one ie: example.com/appeals/create I've tried renaming back to the default site-event, but the problem persists, and I'm having trouble debugging this error. Has anyone seen an error like this before? (I'm quite new to Zend/SocialEngine)
exception 'Zend_Form_Exception' with message 'No view script registered with ViewScript decorator' in /home/activism/public_html/application/libraries/Zend/Form/Decorator/ViewScript.php:162
Stack trace:
#0 /home/activism/public_html/application/libraries/Zend/Form/DisplayGroup.php(920): Zend_Form_Decorator_ViewScript->render('')
#1 /home/activism/public_html/application/libraries/Zend/Form/Decorator/FormElements.php(116): Zend_Form_DisplayGroup->render()
#2 /home/activism/public_html/application/libraries/Zend/Form.php(2933): Zend_Form_Decorator_FormElements->render('')
#3 /home/activism/public_html/application/modules/Siteevent/views/scripts/index/create.tpl(294): Zend_Form->render(Object(Zend_View))
#4 /home/activism/public_html/application/libraries/Zend/View.php(108): include('/home/activism/...')
#5 /home/activism/public_html/application/libraries/Zend/View/Abstract.php(890): Zend_View->_run('/home/activism/...')
#6 /home/activism/public_html/application/libraries/Zend/Controller/Action/Helper/ViewRenderer.php(900): Zend_View_Abstract->render('index/create.tp...')
#7 /home/activism/public_html/application/libraries/Zend/Controller/Action/Helper/ViewRenderer.php(921): Zend_Controller_Action_Helper_ViewRenderer->renderScript('index/create.tp...', NULL)
#8 /home/activism/public_html/application/libraries/Zend/Controller/Action/Helper/ViewRenderer.php(960): Zend_Controller_Action_Helper_ViewRenderer->render()
#9 /home/activism/public_html/application/libraries/Zend/Controller/Action/HelperBroker.php(277): Zend_Controller_Action_Helper_ViewRenderer->postDispatch()
#10 /home/activism/public_html/application/libraries/Zend/Controller/Action.php(527): Zend_Controller_Action_HelperBroker->notifyPostDispatch()
#11 /home/activism/public_html/application/libraries/Zend/Controller/Dispatcher/Standard.php(308): Zend_Controller_Action->dispatch('createAction')
#12 /home/activism/public_html/application/libraries/Zend/Controller/Front.php(954): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http))
#13 /home/activism/public_html/application/modules/Core/Bootstrap.php(83): Zend_Controller_Front->dispatch()
#14 /home/activism/public_html/application/libraries/Engine/Application.php(160): Core_Bootstrap->run()
#15 /home/activism/public_html/application/index.php(211): Engine_Application->run()
#16 /home/activism/public_html/index.php(24): include('/home/activism/...')
#17 {main}
Its seems you need to verify license .Contact the Socialengineaddson guys will help you.
I am using the Bigcommerce PHP SDK within my Laravel 4 application. The Bigcommerce SDK is configured to throw exceptions when errors occur. These exceptions are usually of the class Bigcommerce\Api\ClientError. When these exceptions are thrown, instead of seeing a detailed output in my error logs like I normally do for Laravel exceptions (with stack traces, line numbers, file locations, etc), I only see a single line in the error log, something like this:
[2015-05-05 21:19:00] production.ERROR: Client Error (404): The requested resource was not found. [] []
Is there something I need to do within my app to ensure that these Bigcommerce exceptions are logged using the same detail as other Laravel exceptions?
Here's an example of the error output I'm used to seeing from Laravel. This output was the result of a Bigcommerce\Api\NetworkError. I do not understand why the output for this type of exception is what I'm looking for, but a Bigcommerce\Api\ClientError is not:
[2015-05-05 13:22:22] production.ERROR: exception 'Bigcommerce\Api\NetworkError' with message 'Empty reply from server' in /var/www/html/dev.example/vendor/bigcommerce/api/src/Bigcommerce/Api/Connection.php:213
Stack trace:
#0 /var/www/html/dev.example/vendor/bigcommerce/api/src/Bigcommerce/Api/Connection.php(326): Bigcommerce\Api\Connection->handleResponse()
#1 /var/www/html/dev.example/vendor/bigcommerce/api/src/Bigcommerce/Api/Client.php(225): Bigcommerce\Api\Connection->post('https://api.big...', Object(stdClass))
#2 /var/www/html/dev.example/vendor/bigcommerce/api/src/Bigcommerce/Api/Client.php(436): Bigcommerce\Api\Client::createResource('/products', Array)
#3 /var/www/html/dev.example/app/spire_models/Product.php(873): Bigcommerce\Api\Client::createProduct(Array)
#4 /var/www/html/dev.example/app/spire_models/Product.php(35): Spire_models\Product->pushToExternal()
#5 /var/www/html/dev.example/app/extensions/SlaveTrait.php(26): Spire_models\Product->additionalSyncWithMaster()
#6 /var/www/html/dev.example/app/controllers/ProductInfoController.php(225): Spire_models\Product->syncWithMaster()
#7 [internal function]: ProductInfoController->saveProductDetails()
#8 /var/www/html/dev.example/vendor/laravel/framework/src/Illuminate/Routing/Controller.php(231): call_user_func_array(Array, Array)
#9 /var/www/html/dev.example/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(93): Illuminate\Routing\Controller->callAction('saveProductDeta...', Array)
#10 /var/www/html/dev.example/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(62): Illuminate\Routing\ControllerDispatcher->call(Object(ProductInfoController), Object(Illuminate\Routing\Route), 'saveProductDeta...')
#11 /var/www/html/dev.example/vendor/laravel/framework/src/Illuminate/Routing/Router.php(967): Illuminate\Routing\ControllerDispatcher->dispatch(Object(Illuminate\Routing\Route), Object(Illuminate\Http\Request), 'ProductInfoCont...', 'saveProductDeta...')
#12 [internal function]: Illuminate\Routing\Router->Illuminate\Routing\{closure}()
#13 /var/www/html/dev.example/vendor/laravel/framework/src/Illuminate/Routing/Route.php(109): call_user_func_array(Object(Closure), Array)
#14 /var/www/html/dev.example/vendor/laravel/framework/src/Illuminate/Routing/Router.php(1033): Illuminate\Routing\Route->run(Object(Illuminate\Http\Request))
#15 /var/www/html/dev.example/vendor/laravel/framework/src/Illuminate/Routing/Router.php(1001): Illuminate\Routing\Router->dispatchToRoute(Object(Illuminate\Http\Request))
#16 /var/www/html/dev.example/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(775): Illuminate\Routing\Router->dispatch(Object(Illuminate\Http\Request))
#17 /var/www/html/dev.example/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(745): Illuminate\Foundation\Application->dispatch(Object(Illuminate\Http\Request))
#18 /var/www/html/dev.example/vendor/laravel/framework/src/Illuminate/Session/Middleware.php(72): Illuminate\Foundation\Application->handle(Object(Illuminate\Http\Request), 1, true)
#19 /var/www/html/dev.example/vendor/laravel/framework/src/Illuminate/Cookie/Queue.php(47): Illuminate\Session\Middleware->handle(Object(Illuminate\Http\Request), 1, true)
#20 /var/www/html/dev.example/vendor/laravel/framework/src/Illuminate/Cookie/Guard.php(51): Illuminate\Cookie\Queue->handle(Object(Illuminate\Http\Request), 1, true)
#21 /var/www/html/dev.example/vendor/stack/builder/src/Stack/StackedHttpKernel.php(23): Illuminate\Cookie\Guard->handle(Object(Illuminate\Http\Request), 1, true)
#22 /var/www/html/dev.example/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(641): Stack\StackedHttpKernel->handle(Object(Illuminate\Http\Request))
#23 /var/www/html/dev.example/public/index.php(49): Illuminate\Foundation\Application->run()
#24 {main} [] []
In the Bigcommerce/Api/ClientError.php theres one method __toString(). Comment it out.
I was just on the verge of turning my site live, as I had to update my database to the sites current standards for sales orders and transactions and what not so they fell just in line. I imported the sales files from the live database to the soon to be live database, which had been working perfectly prior to this. Once the updated sales and orders files were updated, my checkout process fails on the very last step of hitting 'Place Order' .. It goes into the submitting process, then simply comes up with a popup message stating "There was an error processing your order. Please contact us or try again later." Click okay, and you just stare at your waiting cart. I have looked around and tried a few things, to no avail. So I come to you all knowing stack crew!
This is the error log I am getting now;
exception 'PDOException' with message 'SQLSTATE[HY093]: Invalid parameter number: parameter was not defined' in /www/www/store/lib/Zend/Db/Statement/Pdo.php:228
Stack trace:
#0 /www/www/store/lib/Zend/Db/Statement/Pdo.php(228): PDOStatement- >execute(Array)
#1 /www/www/store/lib/Varien/Db/Statement/Pdo/Mysql.php(110): Zend_Db_Statement_Pdo->_execute(Array)
#2 /www/www/store/app/code/core/Zend/Db/Statement.php(291): Varien_Db_Statement_Pdo_Mysql->_execute(Array)
#3 /www/www/store/lib/Zend/Db/Adapter/Abstract.php(479): Zend_Db_Statement->execute(Array)
#4 /www/www/store/lib/Zend/Db/Adapter/Pdo/Abstract.php(238): Zend_Db_Adapter_Abstract->query('SELECT `sales_f...', Array)
#5 /www/www/store/lib/Varien/Db/Adapter/Pdo/Mysql.php(428): Zend_Db_Adapter_Pdo_Abstract->query('SELECT `sales_f...', Array)
#6 /www/www/store/lib/Zend/Db/Adapter/Abstract.php(825): Varien_Db_Adapter_Pdo_Mysql->query(Object(Varien_Db_Select), Array)
#7 /www/www/store/app/code/local/Mage/Sales/Model/Resource/Quote.php(169): Zend_Db_Adapter_Abstract->fetchOne(Object(Varien_Db_Select), Array)
#8 /www/www/store/app/code/core/Mage/Sales/Model/Quote.php(1637): Mage_Sales_Model_Resource_Quote->isOrderIncrementIdUsed('100014532')
#9 /www/www/store/app/code/core/Mage/Sales/Model/Service/Quote.php(147): Mage_Sales_Model_Quote->reserveOrderId()
#10 /www/www/store/app/code/core/Mage/Sales/Model/Service/Quote.php(249): Mage_Sales_Model_Service_Quote->submitOrder()
#11 /www/www/store/app/code/core/Mage/Checkout/Model/Type/Onepage.php(785): Mage_Sales_Model_Service_Quote->submitAll()
#12 /www/www/store/app/code/core/Mage/Checkout/controllers/OnepageController.php(579): Mage_Checkout_Model_Type_Onepage->saveOrder()
#13 /www/www/store/app/code/core/Mage/Core/Controller/Varien/Action.php(418): Mage_Checkout_OnepageController->saveOrderAction()
#14 /www/www/store/app/code/core/Mage/Core/Controller/Varien/Router/Standard.php(250): Mage_Core_Controller_Varien_Action->dispatch('saveOrder')
#15 /www/www/store/app/code/core/Mage/Core/Controller/Varien/Front.php(172): Mage_Core_Controller_Varien_Router_Standard->match(Object(Mage_Core_Controller_Request_Http))
#16 /www/www/store/app/code/core/Mage/Core/Model/App.php(354): Mage_Core_Controller_Varien_Front->dispatch()
#17 /www/www/store/app/Mage.php(684): Mage_Core_Model_App->run(Array)
#18 /www/www/store/index.php(87): Mage::run('', 'store')
#19 {main}
Next exception 'Zend_Db_Statement_Exception' with message 'SQLSTATE[HY093]: Invalid parameter number: parameter was not defined' in /www/www/store/lib/Zend/Db/Statement/Pdo.php:234
Stack trace:
#0 /www/www/store/lib/Varien/Db/Statement/Pdo/Mysql.php(110): Zend_Db_Statement_Pdo->_execute(Array)
#1 /www/www/store/app/code/core/Zend/Db/Statement.php(291): Varien_Db_Statement_Pdo_Mysql->_execute(Array)
#2 /www/www/store/lib/Zend/Db/Adapter/Abstract.php(479): Zend_Db_Statement->execute(Array)
#3 /www/www/store/lib/Zend/Db/Adapter/Pdo/Abstract.php(238): Zend_Db_Adapter_Abstract->query('SELECT `sales_f...', Array)
#4 /www/www/store/lib/Varien/Db/Adapter/Pdo/Mysql.php(428): Zend_Db_Adapter_Pdo_Abstract->query('SELECT `sales_f...', Array)
#5 /www/www/store/lib/Zend/Db/Adapter/Abstract.php(825): Varien_Db_Adapter_Pdo_Mysql->query(Object(Varien_Db_Select), Array)
#6 /www/www/store/app/code/local/Mage/Sales/Model/Resource/Quote.php(169): Zend_Db_Adapter_Abstract->fetchOne(Object(Varien_Db_Select), Array)
#7 /www/www/store/app/code/core/Mage/Sales/Model/Quote.php(1637): Mage_Sales_Model_Resource_Quote->isOrderIncrementIdUsed('100014532')
#8 /www/www/store/app/code/core/Mage/Sales/Model/Service/Quote.php(147): Mage_Sales_Model_Quote->reserveOrderId()
#9 /www/www/store/app/code/core/Mage/Sales/Model/Service/Quote.php(249): Mage_Sales_Model_Service_Quote->submitOrder()
#10 /www/www/store/app/code/core/Mage/Checkout/Model/Type/Onepage.php(785): Mage_Sales_Model_Service_Quote->submitAll()
#11 /www/www/store/app/code/core/Mage/Checkout/controllers/OnepageController.php(579): Mage_Checkout_Model_Type_Onepage->saveOrder()
#12 /www/www/store/app/code/core/Mage/Core/Controller/Varien/Action.php(418): Mage_Checkout_OnepageController->saveOrderAction()
#13 /www/www/store/app/code/core/Mage/Core/Controller/Varien/Router/Standard.php(250): Mage_Core_Controller_Varien_Action->dispatch('saveOrder')
#14 /www/www/store/app/code/core/Mage/Core/Controller/Varien/Front.php(172): Mage_Core_Controller_Varien_Router_Standard->match(Object(Mage_Core_Controller_Request_Http))
#15 /www/www/store/app/code/core/Mage/Core/Model/App.php(354): Mage_Core_Controller_Varien_Front->dispatch()
#16 /www/www/store/app/Mage.php(684): Mage_Core_Model_App->run(Array)
#17 /www/www/store/index.php(87): Mage::run('', 'store')
#18 {main}
I can see they are both dealing with the same invalid parameter, but I assume if I just fix that one single parameter (which is probably just the parameter for my one personally made user account I assume) it would still error for some other, not effectively solving the issue. So I have to ask, does this give anyone an idea of what the heck I did to blow up my store?! Thanks for your time guys, truly!
First, looking at your specific error
exception 'PDOException' with message SQLSTATE[HY093]: Invalid parameter number: parameter was not defined
This is PHP's database layers saying "someone used me wrong". Specifically, it looks like someone used a parameterized query where they included a blank and/or invalid parameter.
Second, looking at your stack trace, I noticed this.
/www/www/store/app/code/local/Mage/Sales/Model/Resource/Quote.php(169): Zend_Db_Adapter_Abstract->fetchOne(Object(Varien_Db_Select), Array)
Specifically, it looks like you, or someone, has created a code pool override for the quote resource model. Everything else being equal, I'd say it's likely the change you made to this file from the file in core is what's causing your problem. Likely in this method (around line 169)
#File: app/code/core/Mage/Sales/Model/Resource/Quote.php
public function isOrderIncrementIdUsed($orderIncrementId)
{
$adapter = $this->_getReadAdapter();
$bind = array(':increment_id' => (int)$orderIncrementId);
$select = $adapter->select();
$select->from($this->getTable('sales/order'), 'entity_id')
->where('increment_id = :increment_id');
$entity_id = $adapter->fetchOne($select, $bind);
if ($entity_id > 0) {
return true;
}
return false;
}
My guess is you've either jiggered with the $bind array
$entity_id = $adapter->fetchOne($select, $bind);
or included additional query parameters in the SQL that aren't accounted for.
->where('increment_id = :increment_id');
I have a Magento 1.8 installation which was working fine up until yesterday evening at which point changing any config settings in the admin area stopped working.
E.g. If I change 'store name' to anything different and clicking save: it says "The configuration has been saved" in the green bar at the top but the value stays as it previously was.
Checking in phpMyAdmin the value is unchanged, however you can change it manually in phpMyAdmin and this will be reflected in the admin backend.
Switching on developer mode, initially got me the following when I tried to load any page:
Strict Notice: Only variables should be passed by reference in /home/user/dev/lib/Varien/Db/Adapter/Pdo/Mysql.php on line 2765
#0 /home/user/dev/lib/Varien/Db/Adapter/Pdo/Mysql.php(2765): mageCoreErrorHandler(2048, 'Only variables ...', '/home/user/de...', 2765, Array)
#1 /home/user/dev/lib/Varien/Data/Collection/Db.php(483): Varien_Db_Adapter_Pdo_Mysql->prepareSqlCondition('path', Array)
#2 /home/user/dev/lib/Varien/Data/Collection/Db.php(414): Varien_Data_Collection_Db->_getConditionSql('path', Array)
#3 /home/user/dev/lib/Varien/Data/Collection/Db.php(385): Varien_Data_Collection_Db->_translateCondition('path', Array)
#4 /home/user/dev/app/code/core/Mage/Core/Model/Resource/Config/Data/Collection.php(58): Varien_Data_Collection_Db->addFieldToFilter('path', Array)
#5 /home/user/dev/app/code/core/Mage/Adminhtml/Model/Config/Data.php(306): Mage_Core_Model_Resource_Config_Data_Collection->addScopeFilter('default', 0, 'general')
#6 /home/user/dev/app/code/core/Mage/Adminhtml/Model/Config/Data.php(292): Mage_Adminhtml_Model_Config_Data->_getPathConfig('general', false)
#7 /home/user/dev/app/code/core/Mage/Adminhtml/Model/Config/Data.php(221): Mage_Adminhtml_Model_Config_Data->_getConfig(false)
#8 /home/user/dev/app/code/core/Mage/Adminhtml/Model/Config/Data.php(334): Mage_Adminhtml_Model_Config_Data->load()
#9 /home/user/dev/app/code/core/Mage/Paypal/Model/Observer.php(134): Mage_Adminhtml_Model_Config_Data->getConfigDataValue('paypal/general/...')
#10 /home/user/dev/app/code/core/Mage/Core/Model/App.php(1338): Mage_Paypal_Model_Observer->loadCountryDependentSolutionsConfig(Object(Varien_Event_Observer))
#11 /home/user/dev/app/code/core/Mage/Core/Model/App.php(1317): Mage_Core_Model_App->_callObserverMethod(Object(Mage_Paypal_Model_Observer), 'loadCountryDepe...', Object(Varien_Event_Observer))
#12 /home/user/dev/app/Mage.php(447): Mage_Core_Model_App->dispatchEvent('adminhtml_init_...', Array)
#13 /home/user/dev/app/code/core/Mage/Adminhtml/Model/Config.php(93): Mage::dispatchEvent('adminhtml_init_...', Array)
#14 /home/user/dev/app/code/core/Mage/Adminhtml/Model/Config.php(63): Mage_Adminhtml_Model_Config->_initSectionsAndTabs()
#15 /home/user/dev/app/code/core/Mage/Adminhtml/controllers/System/ConfigController.php(88): Mage_Adminhtml_Model_Config->getSections('general')
#16 /home/user/dev/app/code/core/Mage/Core/Controller/Varien/Action.php(418): Mage_Adminhtml_System_ConfigController->editAction()
#17 /home/user/dev/app/code/core/Mage/Core/Controller/Varien/Router/Standard.php(250): Mage_Core_Controller_Varien_Action->dispatch('edit')
#18 /home/user/dev/app/code/core/Mage/Core/Controller/Varien/Front.php(172): Mage_Core_Controller_Varien_Router_Standard->match(Object(Mage_Core_Controller_Request_Http))
#19 /home/user/dev/app/code/core/Mage/Core/Model/App.php(354): Mage_Core_Controller_Varien_Front->dispatch()
#20 /home/user/dev/app/Mage.php(683): Mage_Core_Model_App->run(Array)
#21 /home/user/dev/index.php(87): Mage::run('', 'store')
#22 {main}
Looking up /home/user/dev/lib/Varien/Db/Adapter/Pdo/Mysql.php on line 2765:
$key = key(array_intersect_key($condition, $conditionKeyMap));
Which made no sense to me, but something to do with MySQL seemed like I might be on the right track... I googled the error and found this: http://www.magentocommerce.com/boards/v/viewthread/266575/ - and tried the suggestion of replacing line 2795 with:
$tmp = array_intersect_key($condition, $conditionKeyMap);
$key = key($tmp);
Which resulted in the following dev mode error:
Method "addJqueryLibrary" is not defined in "Magentothem_Upsellslider_Model_Layout_Generate_Observer"
#0 /home/user/dev/app/code/core/Mage/Core/Model/App.php(1340): Mage::throwException('Method "addJque...')
#1 /home/user/dev/app/code/core/Mage/Core/Model/App.php(1317): Mage_Core_Model_App->_callObserverMethod(Object(Magentothem_Upsellslider_Model_Layout_Generate_Observer), 'addJqueryLibrar...', Object(Varien_Event_Observer))
#2 /home/user/dev/app/Mage.php(447): Mage_Core_Model_App->dispatchEvent('controller_acti...', Array)
#3 /home/user/dev/app/code/core/Mage/Core/Controller/Varien/Action.php(351): Mage::dispatchEvent('controller_acti...', Array)
#4 /home/user/dev/app/code/core/Mage/Core/Controller/Varien/Action.php(269): Mage_Core_Controller_Varien_Action->generateLayoutBlocks()
#5 /home/user/dev/app/code/core/Mage/Adminhtml/Controller/Action.php(275): Mage_Core_Controller_Varien_Action->loadLayout(NULL, true, true)
#6 /home/user/dev/app/code/core/Mage/Adminhtml/controllers/System/ConfigController.php(95): Mage_Adminhtml_Controller_Action->loadLayout()
#7 /home/user/dev/app/code/core/Mage/Core/Controller/Varien/Action.php(418): Mage_Adminhtml_System_ConfigController->editAction()
#8 /home/user/dev/app/code/core/Mage/Core/Controller/Varien/Router/Standard.php(250): Mage_Core_Controller_Varien_Action->dispatch('edit')
#9 /home/user/dev/app/code/core/Mage/Core/Controller/Varien/Front.php(172): Mage_Core_Controller_Varien_Router_Standard->match(Object(Mage_Core_Controller_Request_Http))
#10 /home/user/dev/app/code/core/Mage/Core/Model/App.php(354): Mage_Core_Controller_Varien_Front->dispatch()
#11 /home/user/dev/app/Mage.php(683): Mage_Core_Model_App->run(Array)
#12 /home/user/dev/index.php(87): Mage::run('', 'store')
#13 {main}
If you switch developer mode off now, the same thing happens, says its saved but no change.
Just found in /var/exception.log another error that says:
exception 'Mage_Core_Exception' with message 'Invalid block type: Fishpig_FPAdmin_Block_Adminhtml_Extend' in /home/pieboy/dev/app/Mage.php:594
(followed by another stack trace)
I'm pretty much at my wits end with what to try next and out of my depth. The store is using a paid for theme which included a lot of extensions which I didn't personally install, but it has been working completely fine up until now.
The most recent extension I installed was this:
http://www.magentocommerce.com/magento-connect/stripe-for-magento.html
As far as I could tell it all went smoothly, and I've been editing config settings since, but it was when I went to enable it in the payment methods area that I noticed the problem.
I know this was a lot of reading, but was just trying to get down all the info. Any suggestions at all on how to debug from here are welcome.
EDIT: I uninstalled Fishpig and Magentothem upsellslider extensions, and now I get no errors or exceptions at all in dev mode but still the same behaviour with config settings not saving.
With the help of my hosting company, we tracked this down to being caused by suhosin, they increased the following suhosin limits in the php.ini file for my server which resolved the issue:
suhosin.post.max_vars = 1000
suhosin.request.max_vars = 1000
(Thought I would update here in case anyone in the same boat googles it!)