hyperRail icon indicating copy to clipboard operation
hyperRail copied to clipboard

500 Internal sever error when no trips could be found in a liveboard

Open Tjoosten opened this issue 10 years ago • 4 comments

Hi i caught a 500 internal server error here

i've already tested this on my local branch and i get this error slack:

[2015-08-23 01:48:29] local.ERROR: exception 'ErrorException' with message 'Undefined property: stdClass::$departures' in /Users/tim/Desktop/hyperRail-defuq/app/hyperRail/FormatConvertor.php:31
Stack trace:
#0 /Users/tim/Desktop/hyperRail-defuq/app/hyperRail/FormatConvertor.php(31): Illuminate\Foundation\Bootstrap\HandleExceptions->handleError(8, 'Undefined prope...', '/Users/tim/Desk...', 31, Array)
#1 /Users/tim/Desktop/hyperRail-defuq/app/Http/Controllers/StationController.php(311): App\hyperRail\FormatConverter::convertLiveboardData('{"version":"1.1...', '008821907')
#2 [internal function]: App\Http\Controllers\StationController->liveboard('008821907')
#3 /Users/tim/Desktop/hyperRail-defuq/vendor/laravel/framework/src/Illuminate/Routing/Controller.php(256): call_user_func_array(Array, Array)
#4 /Users/tim/Desktop/hyperRail-defuq/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(164): Illuminate\Routing\Controller->callAction('liveboard', Array)
#5 /Users/tim/Desktop/hyperRail-defuq/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(112): Illuminate\Routing\ControllerDispatcher->call(Object(App\Http\Controllers\StationController), Object(Illuminate\Routing\Route), 'liveboard')
#6 [internal function]: Illuminate\Routing\ControllerDispatcher->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#7 /Users/tim/Desktop/hyperRail-defuq/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(139): call_user_func(Object(Closure), Object(Illuminate\Http\Request))
#8 /Users/tim/Desktop/hyperRail-defuq/app/Http/Middleware/Language.php(50): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#9 [internal function]: App\Http\Middleware\Language->handle(Object(Illuminate\Http\Request), Object(Closure))
#10 /Users/tim/Desktop/hyperRail-defuq/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(124): call_user_func_array(Array, Array)
#11 [internal function]: Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#12 /Users/tim/Desktop/hyperRail-defuq/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(103): call_user_func(Object(Closure), Object(Illuminate\Http\Request))
#13 /Users/tim/Desktop/hyperRail-defuq/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(114): Illuminate\Pipeline\Pipeline->then(Object(Closure))
#14 /Users/tim/Desktop/hyperRail-defuq/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(69): Illuminate\Routing\ControllerDispatcher->callWithinStack(Object(App\Http\Controllers\StationController), Object(Illuminate\Routing\Route), Object(Illuminate\Http\Request), 'liveboard')
#15 /Users/tim/Desktop/hyperRail-defuq/vendor/laravel/framework/src/Illuminate/Routing/Route.php(201): Illuminate\Routing\ControllerDispatcher->dispatch(Object(Illuminate\Routing\Route), Object(Illuminate\Http\Request), 'App\\Http\\Contro...', 'liveboard')
#16 /Users/tim/Desktop/hyperRail-defuq/vendor/laravel/framework/src/Illuminate/Routing/Route.php(134): Illuminate\Routing\Route->runWithCustomDispatcher(Object(Illuminate\Http\Request))
#17 /Users/tim/Desktop/hyperRail-defuq/vendor/laravel/framework/src/Illuminate/Routing/Router.php(704): Illuminate\Routing\Route->run(Object(Illuminate\Http\Request))
#18 [internal function]: Illuminate\Routing\Router->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#19 /Users/tim/Desktop/hyperRail-defuq/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(139): call_user_func(Object(Closure), Object(Illuminate\Http\Request))
#20 [internal function]: Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#21 /Users/tim/Desktop/hyperRail-defuq/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(103): call_user_func(Object(Closure), Object(Illuminate\Http\Request))
#22 /Users/tim/Desktop/hyperRail-defuq/vendor/laravel/framework/src/Illuminate/Routing/Router.php(706): Illuminate\Pipeline\Pipeline->then(Object(Closure))
#23 /Users/tim/Desktop/hyperRail-defuq/vendor/laravel/framework/src/Illuminate/Routing/Router.php(671): Illuminate\Routing\Router->runRouteWithinStack(Object(Illuminate\Routing\Route), Object(Illuminate\Http\Request))
#24 /Users/tim/Desktop/hyperRail-defuq/vendor/laravel/framework/src/Illuminate/Routing/Router.php(631): Illuminate\Routing\Router->dispatchToRoute(Object(Illuminate\Http\Request))
#25 /Users/tim/Desktop/hyperRail-defuq/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(236): Illuminate\Routing\Router->dispatch(Object(Illuminate\Http\Request))
#26 [internal function]: Illuminate\Foundation\Http\Kernel->Illuminate\Foundation\Http\{closure}(Object(Illuminate\Http\Request))
#27 /Users/tim/Desktop/hyperRail-defuq/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(139): call_user_func(Object(Closure), Object(Illuminate\Http\Request))
#28 /Users/tim/Desktop/hyperRail-defuq/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php(50): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#29 [internal function]: Illuminate\Foundation\Http\Middleware\VerifyCsrfToken->handle(Object(Illuminate\Http\Request), Object(Closure))
#30 /Users/tim/Desktop/hyperRail-defuq/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(124): call_user_func_array(Array, Array)
#31 /Users/tim/Desktop/hyperRail-defuq/vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php(54): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#32 [internal function]: Illuminate\View\Middleware\ShareErrorsFromSession->handle(Object(Illuminate\Http\Request), Object(Closure))
#33 /Users/tim/Desktop/hyperRail-defuq/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(124): call_user_func_array(Array, Array)
#34 /Users/tim/Desktop/hyperRail-defuq/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(62): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#35 [internal function]: Illuminate\Session\Middleware\StartSession->handle(Object(Illuminate\Http\Request), Object(Closure))
#36 /Users/tim/Desktop/hyperRail-defuq/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(124): call_user_func_array(Array, Array)
#37 /Users/tim/Desktop/hyperRail-defuq/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php(37): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#38 [internal function]: Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse->handle(Object(Illuminate\Http\Request), Object(Closure))
#39 /Users/tim/Desktop/hyperRail-defuq/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(124): call_user_func_array(Array, Array)
#40 /Users/tim/Desktop/hyperRail-defuq/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php(59): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#41 [internal function]: Illuminate\Cookie\Middleware\EncryptCookies->handle(Object(Illuminate\Http\Request), Object(Closure))
#42 /Users/tim/Desktop/hyperRail-defuq/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(124): call_user_func_array(Array, Array)
#43 /Users/tim/Desktop/hyperRail-defuq/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/CheckForMaintenanceMode.php(42): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#44 [internal function]: Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode->handle(Object(Illuminate\Http\Request), Object(Closure))
#45 /Users/tim/Desktop/hyperRail-defuq/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(124): call_user_func_array(Array, Array)
#46 [internal function]: Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#47 /Users/tim/Desktop/hyperRail-defuq/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(103): call_user_func(Object(Closure), Object(Illuminate\Http\Request))
#48 /Users/tim/Desktop/hyperRail-defuq/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(122): Illuminate\Pipeline\Pipeline->then(Object(Closure))
#49 /Users/tim/Desktop/hyperRail-defuq/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(87): Illuminate\Foundation\Http\Kernel->sendRequestThroughRouter(Object(Illuminate\Http\Request))
#50 /Users/tim/Desktop/hyperRail-defuq/public/index.php(54): Illuminate\Foundation\Http\Kernel->handle(Object(Illuminate\Http\Request))
#51 /Users/tim/Desktop/hyperRail-defuq/server.php(21): require_once('/Users/tim/Desk...')
#52 {main}  

Tjoosten avatar Aug 22 '15 23:08 Tjoosten

Right now it works fine, at 02:00 am however, there JSON structure retrieved from api.irail.be is different. See for example: http://api.irail.be/liveboard/?format=json&lang=NL&station=turnhout&fast=true&time=02:00. We should be able to handle this as well.

Solution

Handle when the liveboard is empty and give an appropriate message in the view

pietercolpaert avatar Aug 23 '15 08:08 pietercolpaert

Alright. I will try to work on something for this.

@pietercolpaert This also affects the TravisCI testing part on the PR's

Tjoosten avatar Aug 23 '15 10:08 Tjoosten

@Tjoosten any news on this? There seem to be a couple of issues that you assigned yourself to but we have not heard anything about it any more. Please also indicate if you want someone else to fix this issue, otherwise it's going to be open for a lot of more time.

pietercolpaert avatar Jul 22 '16 07:07 pietercolpaert

@pietercolpaert I can give u a update later this day. Currently I'm on my work. And I have not the tools to dig into this.

Tjoosten avatar Jul 22 '16 09:07 Tjoosten