Symfony Exception

ClientException

HTTP 500 Internal Server Error

Client error: `GET https://api.tfl.gov.uk/Line/455/Arrivals/490011258C?direction=inbound&app_key=18cab965158c4610acee64356fc40f9e` resulted in a `404 Not Found` response:
{"$type":"Tfl.Api.Presentation.Entities.ApiError, Tfl.Api.Presentation.Entities","timestampUtc":"2024-03-28T09:07:36.539 (truncated...)

Exception

GuzzleHttp\Exception\ ClientException

  1.         if ($summary !== null) {
  2.             $message .= ":\n{$summary}\n";
  3.         }
  4.         return new $className($message$request$response$previous$handlerContext);
  5.     }
  6.     /**
  7.      * Obfuscates URI if there is a username and a password present
  8.      */
  1.                     static function (ResponseInterface $response) use ($request$bodySummarizer) {
  2.                         $code $response->getStatusCode();
  3.                         if ($code 400) {
  4.                             return $response;
  5.                         }
  6.                         throw RequestException::create($request$responsenull, [], $bodySummarizer);
  7.                     }
  8.                 );
  9.             };
  10.         };
  11.     }
  1.                  * itself we get a circular reference. We clear the $handler
  2.                  * here to avoid that memory leak.
  3.                  */
  4.                 $f $handler[$index];
  5.                 unset($handler);
  6.                 $promise->resolve($f($value));
  7.             } elseif ($index === 1) {
  8.                 // Forward resolution values as-is.
  9.                 $promise->resolve($value);
  10.             } else {
  11.                 // Forward rejections down the chain.
  1.         if (!is_object($value) || !method_exists($value'then')) {
  2.             $id $state === self::FULFILLED 2;
  3.             // It's a success, so resolve the handlers in the queue.
  4.             Utils::queue()->add(static function () use ($id$value$handlers) {
  5.                 foreach ($handlers as $handler) {
  6.                     self::callHandler($id$value$handler);
  7.                 }
  8.             });
  9.         } elseif ($value instanceof Promise && Is::pending($value)) {
  10.             // We can just merge our handlers onto the next promise.
  11.             $value->handlers array_merge($value->handlers$handlers);
  1.     public function run()
  2.     {
  3.         while ($task array_shift($this->queue)) {
  4.             /** @var callable $task */
  5.             $task();
  6.         }
  7.     }
  8.     /**
  9.      * The task queue will be run and exhausted by default when the process
  1.     private function invokeWaitFn()
  2.     {
  3.         try {
  4.             $wfn $this->waitFn;
  5.             $this->waitFn null;
  6.             $wfn(true);
  7.         } catch (\Exception $reason) {
  8.             if ($this->state === self::PENDING) {
  9.                 // The promise has not been resolved yet, so reject the promise
  10.                 // with the exception.
  11.                 $this->reject($reason);
  1.     private function waitIfPending()
  2.     {
  3.         if ($this->state !== self::PENDING) {
  4.             return;
  5.         } elseif ($this->waitFn) {
  6.             $this->invokeWaitFn();
  7.         } elseif ($this->waitList) {
  8.             $this->invokeWaitList();
  9.         } else {
  10.             // If there's no wait function, then reject the promise.
  11.             $this->reject('Cannot wait on a promise that has '
  1.         $waitList $this->waitList;
  2.         $this->waitList null;
  3.         foreach ($waitList as $result) {
  4.             do {
  5.                 $result->waitIfPending();
  6.                 $result $result->result;
  7.             } while ($result instanceof Promise);
  8.             if ($result instanceof PromiseInterface) {
  9.                 $result->wait(false);
  1.         if ($this->state !== self::PENDING) {
  2.             return;
  3.         } elseif ($this->waitFn) {
  4.             $this->invokeWaitFn();
  5.         } elseif ($this->waitList) {
  6.             $this->invokeWaitList();
  7.         } else {
  8.             // If there's no wait function, then reject the promise.
  9.             $this->reject('Cannot wait on a promise that has '
  10.                 'no internal wait function. You must provide a wait '
  11.                 'function when constructing the promise to be able to '
  1.         return $this->then(null$onRejected);
  2.     }
  3.     public function wait($unwrap true)
  4.     {
  5.         $this->waitIfPending();
  6.         if ($this->result instanceof PromiseInterface) {
  7.             return $this->result->wait($unwrap);
  8.         }
  9.         if ($unwrap) {
  1.      */
  2.     public static function unwrap($promises)
  3.     {
  4.         $results = [];
  5.         foreach ($promises as $key => $promise) {
  6.             $results[$key] = $promise->wait();
  7.         }
  8.         return $results;
  9.     }
  1.             $direction->name,
  2.             env('TFL_APP_KEY'),
  3.         ];
  4.         $responses Promise\Utils::unwrap([
  5.             'lineArrivals' => $client->getAsync(sprintf(TflClient::LINE_ARRIVAL_PREDICTION_URL, ...$lineArrivalsVars)),
  6.             'stopPointArrivalsRaw' => $client->getAsync(sprintf(TflClient::ARRIVAL_PREDICTION_URL, ...$stopPointArrivalsVars)),
  7.         ]);
  8.         $lineArrivals json_decode($responses['lineArrivals']->getBody(), true);
  9.         $stopPointArrivalsRaw json_decode($responses['stopPointArrivalsRaw']->getBody(), true);
  10.         usort($lineArrivals, fn($a$b) => strcmp($a['expectedArrival'], $b['expectedArrival']));
  11.         usort($stopPointArrivalsRaw, fn($a$b) => strcmp($a['expectedArrival'], $b['expectedArrival']));
  1.      * @param  array  $parameters
  2.      * @return \Symfony\Component\HttpFoundation\Response
  3.      */
  4.     public function callAction($method$parameters)
  5.     {
  6.         return $this->{$method}(...array_values($parameters));
  7.     }
  8.     /**
  9.      * Handle calls to missing methods on the controller.
  10.      *
  1.         $parameters $this->resolveClassMethodDependencies(
  2.             $route->parametersWithoutNulls(), $controller$method
  3.         );
  4.         if (method_exists($controller'callAction')) {
  5.             return $controller->callAction($method$parameters);
  6.         }
  7.         return $controller->{$method}(...array_values($parameters));
  8.     }
  1.      * @throws \Symfony\Component\HttpKernel\Exception\NotFoundHttpException
  2.      */
  3.     protected function runController()
  4.     {
  5.         return $this->controllerDispatcher()->dispatch(
  6.             $this$this->getController(), $this->getControllerMethod()
  7.         );
  8.     }
  9.     /**
  10.      * Get the controller instance for the route.
  1.     {
  2.         $this->container $this->container ?: new Container;
  3.         try {
  4.             if ($this->isControllerAction()) {
  5.                 return $this->runController();
  6.             }
  7.             return $this->runCallable();
  8.         } catch (HttpResponseException $e) {
  9.             return $e->getResponse();
  1.         return (new Pipeline($this->container))
  2.                         ->send($request)
  3.                         ->through($middleware)
  4.                         ->then(function ($request) use ($route) {
  5.                             return $this->prepareResponse(
  6.                                 $request$route->run()
  7.                             );
  8.                         });
  9.     }
  10.     /**
  1.      */
  2.     protected function prepareDestination(Closure $destination)
  3.     {
  4.         return function ($passable) use ($destination) {
  5.             try {
  6.                 return $destination($passable);
  7.             } catch (Throwable $e) {
  8.                 return $this->handleException($passable$e);
  9.             }
  10.         };
  11.     }
  1.     {
  2.         $this->router->substituteBindings($route $request->route());
  3.         $this->router->substituteImplicitBindings($route);
  4.         return $next($request);
  5.     }
  6. }
  1.                         // since the object we're given was already a fully instantiated object.
  2.                         $parameters = [$passable$stack];
  3.                     }
  4.                     $carry method_exists($pipe$this->method)
  5.                                     ? $pipe->{$this->method}(...$parameters)
  6.                                     : $pipe(...$parameters);
  7.                     return $this->handleCarry($carry);
  8.                 } catch (Throwable $e) {
  9.                     return $this->handleException($passable$e);
Pipeline->Illuminate\Pipeline\{closure}() in /home/forge/timetable.london/app/Http/Middleware/SetDefaultLocaleForUrls.php (line 20)
  1.      * @return \Illuminate\Http\Response
  2.      */
  3.     public function handle($requestClosure $next)
  4.     {
  5.         URL::defaults(['locale' => app()->getLocale()]);
  6.         return $next($request);
  7.     }
  8. }
  1.                         // since the object we're given was already a fully instantiated object.
  2.                         $parameters = [$passable$stack];
  3.                     }
  4.                     $carry method_exists($pipe$this->method)
  5.                                     ? $pipe->{$this->method}(...$parameters)
  6.                                     : $pipe(...$parameters);
  7.                     return $this->handleCarry($carry);
  8.                 } catch (Throwable $e) {
  9.                     return $this->handleException($passable$e);
Pipeline->Illuminate\Pipeline\{closure}() in /home/forge/timetable.london/app/Http/Middleware/SetLocale.php (line 18)
  1. //        }
  2.         $locale in_array($request->segment(1), config('app.available_locales'))
  3.             ? $request->segment(1)
  4.             : config('app.locale');
  5.         app()->setLocale($locale);
  6.         return $next($request);
  7.     }
  8. }
  1.                         // since the object we're given was already a fully instantiated object.
  2.                         $parameters = [$passable$stack];
  3.                     }
  4.                     $carry method_exists($pipe$this->method)
  5.                                     ? $pipe->{$this->method}(...$parameters)
  6.                                     : $pipe(...$parameters);
  7.                     return $this->handleCarry($carry);
  8.                 } catch (Throwable $e) {
  9.                     return $this->handleException($passable$e);
  1.             $this->isReading($request) ||
  2.             $this->runningUnitTests() ||
  3.             $this->inExceptArray($request) ||
  4.             $this->tokensMatch($request)
  5.         ) {
  6.             return tap($next($request), function ($response) use ($request) {
  7.                 if ($this->shouldAddXsrfTokenCookie()) {
  8.                     $this->addCookieToResponse($request$response);
  9.                 }
  10.             });
  11.         }
  1.                         // since the object we're given was already a fully instantiated object.
  2.                         $parameters = [$passable$stack];
  3.                     }
  4.                     $carry method_exists($pipe$this->method)
  5.                                     ? $pipe->{$this->method}(...$parameters)
  6.                                     : $pipe(...$parameters);
  7.                     return $this->handleCarry($carry);
  8.                 } catch (Throwable $e) {
  9.                     return $this->handleException($passable$e);
  1.         // Putting the errors in the view for every view allows the developer to just
  2.         // assume that some errors are always available, which is convenient since
  3.         // they don't have to continually run checks for the presence of errors.
  4.         return $next($request);
  5.     }
  6. }
  1.                         // since the object we're given was already a fully instantiated object.
  2.                         $parameters = [$passable$stack];
  3.                     }
  4.                     $carry method_exists($pipe$this->method)
  5.                                     ? $pipe->{$this->method}(...$parameters)
  6.                                     : $pipe(...$parameters);
  7.                     return $this->handleCarry($carry);
  8.                 } catch (Throwable $e) {
  9.                     return $this->handleException($passable$e);
  1.             $this->startSession($request$session)
  2.         );
  3.         $this->collectGarbage($session);
  4.         $response $next($request);
  5.         $this->storeCurrentUrl($request$session);
  6.         $this->addCookieToResponse($response$session);
  1.         if ($this->manager->shouldBlock() ||
  2.             ($request->route() instanceof Route && $request->route()->locksFor())) {
  3.             return $this->handleRequestWhileBlocking($request$session$next);
  4.         } else {
  5.             return $this->handleStatefulRequest($request$session$next);
  6.         }
  7.     }
  8.     /**
  9.      * Handle the given request within session state.
  1.                         // since the object we're given was already a fully instantiated object.
  2.                         $parameters = [$passable$stack];
  3.                     }
  4.                     $carry method_exists($pipe$this->method)
  5.                                     ? $pipe->{$this->method}(...$parameters)
  6.                                     : $pipe(...$parameters);
  7.                     return $this->handleCarry($carry);
  8.                 } catch (Throwable $e) {
  9.                     return $this->handleException($passable$e);
  1.      * @param  \Closure  $next
  2.      * @return mixed
  3.      */
  4.     public function handle($requestClosure $next)
  5.     {
  6.         $response $next($request);
  7.         foreach ($this->cookies->getQueuedCookies() as $cookie) {
  8.             $response->headers->setCookie($cookie);
  9.         }
  1.                         // since the object we're given was already a fully instantiated object.
  2.                         $parameters = [$passable$stack];
  3.                     }
  4.                     $carry method_exists($pipe$this->method)
  5.                                     ? $pipe->{$this->method}(...$parameters)
  6.                                     : $pipe(...$parameters);
  7.                     return $this->handleCarry($carry);
  8.                 } catch (Throwable $e) {
  9.                     return $this->handleException($passable$e);
  1.      * @param  \Closure  $next
  2.      * @return \Symfony\Component\HttpFoundation\Response
  3.      */
  4.     public function handle($requestClosure $next)
  5.     {
  6.         return $this->encrypt($next($this->decrypt($request)));
  7.     }
  8.     /**
  9.      * Decrypt the cookies on the request.
  10.      *
  1.                         // since the object we're given was already a fully instantiated object.
  2.                         $parameters = [$passable$stack];
  3.                     }
  4.                     $carry method_exists($pipe$this->method)
  5.                                     ? $pipe->{$this->method}(...$parameters)
  6.                                     : $pipe(...$parameters);
  7.                     return $this->handleCarry($carry);
  8.                 } catch (Throwable $e) {
  9.                     return $this->handleException($passable$e);
  1.     {
  2.         $pipeline array_reduce(
  3.             array_reverse($this->pipes()), $this->carry(), $this->prepareDestination($destination)
  4.         );
  5.         return $pipeline($this->passable);
  6.     }
  7.     /**
  8.      * Run the pipeline and return the result.
  9.      *
  1.                         ->through($middleware)
  2.                         ->then(function ($request) use ($route) {
  3.                             return $this->prepareResponse(
  4.                                 $request$route->run()
  5.                             );
  6.                         });
  7.     }
  8.     /**
  9.      * Gather the middleware for the given route with resolved class names.
  10.      *
  1.         });
  2.         $this->events->dispatch(new RouteMatched($route$request));
  3.         return $this->prepareResponse($request,
  4.             $this->runRouteWithinStack($route$request)
  5.         );
  6.     }
  7.     /**
  8.      * Run the given route within a Stack "onion" instance.
  1.      * @param  \Illuminate\Http\Request  $request
  2.      * @return \Symfony\Component\HttpFoundation\Response
  3.      */
  4.     public function dispatchToRoute(Request $request)
  5.     {
  6.         return $this->runRoute($request$this->findRoute($request));
  7.     }
  8.     /**
  9.      * Find the route matching a given request.
  10.      *
  1.      */
  2.     public function dispatch(Request $request)
  3.     {
  4.         $this->currentRequest $request;
  5.         return $this->dispatchToRoute($request);
  6.     }
  7.     /**
  8.      * Dispatch the request to a route and return the response.
  9.      *
  1.     protected function dispatchToRouter()
  2.     {
  3.         return function ($request) {
  4.             $this->app->instance('request'$request);
  5.             return $this->router->dispatch($request);
  6.         };
  7.     }
  8.     /**
  9.      * Call the terminate method on any terminable middleware.
  1.      */
  2.     protected function prepareDestination(Closure $destination)
  3.     {
  4.         return function ($passable) use ($destination) {
  5.             try {
  6.                 return $destination($passable);
  7.             } catch (Throwable $e) {
  8.                 return $this->handleException($passable$e);
  9.             }
  10.         };
  11.     }
  1.      */
  2.     public function handle($requestClosure $next)
  3.     {
  4.         $this->clean($request);
  5.         return $next($request);
  6.     }
  7.     /**
  8.      * Clean the request's data.
  9.      *
  1.                         // since the object we're given was already a fully instantiated object.
  2.                         $parameters = [$passable$stack];
  3.                     }
  4.                     $carry method_exists($pipe$this->method)
  5.                                     ? $pipe->{$this->method}(...$parameters)
  6.                                     : $pipe(...$parameters);
  7.                     return $this->handleCarry($carry);
  8.                 } catch (Throwable $e) {
  9.                     return $this->handleException($passable$e);
  1.      */
  2.     public function handle($requestClosure $next)
  3.     {
  4.         $this->clean($request);
  5.         return $next($request);
  6.     }
  7.     /**
  8.      * Clean the request's data.
  9.      *
  1.                         // since the object we're given was already a fully instantiated object.
  2.                         $parameters = [$passable$stack];
  3.                     }
  4.                     $carry method_exists($pipe$this->method)
  5.                                     ? $pipe->{$this->method}(...$parameters)
  6.                                     : $pipe(...$parameters);
  7.                     return $this->handleCarry($carry);
  8.                 } catch (Throwable $e) {
  9.                     return $this->handleException($passable$e);
  1.         if ($max && $request->server('CONTENT_LENGTH') > $max) {
  2.             throw new PostTooLargeException;
  3.         }
  4.         return $next($request);
  5.     }
  6.     /**
  7.      * Determine the server 'post_max_size' as bytes.
  8.      *
  1.                         // since the object we're given was already a fully instantiated object.
  2.                         $parameters = [$passable$stack];
  3.                     }
  4.                     $carry method_exists($pipe$this->method)
  5.                                     ? $pipe->{$this->method}(...$parameters)
  6.                                     : $pipe(...$parameters);
  7.                     return $this->handleCarry($carry);
  8.                 } catch (Throwable $e) {
  9.                     return $this->handleException($passable$e);
  1.                 null,
  2.                 isset($data['retry']) ? ['Retry-After' => $data['retry']] : []
  3.             );
  4.         }
  5.         return $next($request);
  6.     }
  7.     /**
  8.      * Determine if the incoming request has a maintenance mode bypass cookie.
  9.      *
  1.                         // since the object we're given was already a fully instantiated object.
  2.                         $parameters = [$passable$stack];
  3.                     }
  4.                     $carry method_exists($pipe$this->method)
  5.                                     ? $pipe->{$this->method}(...$parameters)
  6.                                     : $pipe(...$parameters);
  7.                     return $this->handleCarry($carry);
  8.                 } catch (Throwable $e) {
  9.                     return $this->handleException($passable$e);
  1.     {
  2.         $pipeline array_reduce(
  3.             array_reverse($this->pipes()), $this->carry(), $this->prepareDestination($destination)
  4.         );
  5.         return $pipeline($this->passable);
  6.     }
  7.     /**
  8.      * Run the pipeline and return the result.
  9.      *
  1.         $this->bootstrap();
  2.         return (new Pipeline($this->app))
  3.                     ->send($request)
  4.                     ->through($this->app->shouldSkipMiddleware() ? [] : $this->middleware)
  5.                     ->then($this->dispatchToRouter());
  6.     }
  7.     /**
  8.      * Bootstrap the application for HTTP requests.
  9.      *
  1.     public function handle($request)
  2.     {
  3.         try {
  4.             $request->enableHttpMethodParameterOverride();
  5.             $response $this->sendRequestThroughRouter($request);
  6.         } catch (Throwable $e) {
  7.             $this->reportException($e);
  8.             $response $this->renderException($request$e);
  9.         }
  1. */
  2. $kernel $app->make(Illuminate\Contracts\Http\Kernel::class);
  3. $response $kernel->handle(
  4.     $request Illuminate\Http\Request::capture()
  5. );
  6. $response->send();
  7. $kernel->terminate($request$response);

Stack Trace

ClientException

GuzzleHttp\Exception\ClientException:
Client error: `GET https://api.tfl.gov.uk/Line/455/Arrivals/490011258C?direction=inbound&app_key=18cab965158c4610acee64356fc40f9e` resulted in a `404 Not Found` response:
{"$type":"Tfl.Api.Presentation.Entities.ApiError, Tfl.Api.Presentation.Entities","timestampUtc":"2024-03-28T09:07:36.539 (truncated...)


  at /home/forge/timetable.london/vendor/guzzlehttp/guzzle/src/Exception/RequestException.php:113
  at GuzzleHttp\Exception\RequestException::create()
     (/home/forge/timetable.london/vendor/guzzlehttp/guzzle/src/Middleware.php:69)
  at GuzzleHttp\Middleware::GuzzleHttp\{closure}()
     (/home/forge/timetable.london/vendor/guzzlehttp/promises/src/Promise.php:204)
  at GuzzleHttp\Promise\Promise::callHandler()
     (/home/forge/timetable.london/vendor/guzzlehttp/promises/src/Promise.php:153)
  at GuzzleHttp\Promise\Promise::GuzzleHttp\Promise\{closure}()
     (/home/forge/timetable.london/vendor/guzzlehttp/promises/src/TaskQueue.php:48)
  at GuzzleHttp\Promise\TaskQueue->run()
     (/home/forge/timetable.london/vendor/guzzlehttp/promises/src/Promise.php:248)
  at GuzzleHttp\Promise\Promise->invokeWaitFn()
     (/home/forge/timetable.london/vendor/guzzlehttp/promises/src/Promise.php:224)
  at GuzzleHttp\Promise\Promise->waitIfPending()
     (/home/forge/timetable.london/vendor/guzzlehttp/promises/src/Promise.php:269)
  at GuzzleHttp\Promise\Promise->invokeWaitList()
     (/home/forge/timetable.london/vendor/guzzlehttp/promises/src/Promise.php:226)
  at GuzzleHttp\Promise\Promise->waitIfPending()
     (/home/forge/timetable.london/vendor/guzzlehttp/promises/src/Promise.php:62)
  at GuzzleHttp\Promise\Promise->wait()
     (/home/forge/timetable.london/vendor/guzzlehttp/promises/src/Utils.php:132)
  at GuzzleHttp\Promise\Utils::unwrap()
     (/home/forge/timetable.london/app/Http/Controllers/BusStopController.php:64)
  at App\Http\Controllers\BusStopController->index()
     (/home/forge/timetable.london/vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54)
  at Illuminate\Routing\Controller->callAction()
     (/home/forge/timetable.london/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:45)
  at Illuminate\Routing\ControllerDispatcher->dispatch()
     (/home/forge/timetable.london/vendor/laravel/framework/src/Illuminate/Routing/Route.php:254)
  at Illuminate\Routing\Route->runController()
     (/home/forge/timetable.london/vendor/laravel/framework/src/Illuminate/Routing/Route.php:197)
  at Illuminate\Routing\Route->run()
     (/home/forge/timetable.london/vendor/laravel/framework/src/Illuminate/Routing/Router.php:692)
  at Illuminate\Routing\Router->Illuminate\Routing\{closure}()
     (/home/forge/timetable.london/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:128)
  at Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
     (/home/forge/timetable.london/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php:41)
  at Illuminate\Routing\Middleware\SubstituteBindings->handle()
     (/home/forge/timetable.london/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:167)
  at Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
     (/home/forge/timetable.london/app/Http/Middleware/SetDefaultLocaleForUrls.php:20)
  at App\Http\Middleware\SetDefaultLocaleForUrls->handle()
     (/home/forge/timetable.london/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:167)
  at Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
     (/home/forge/timetable.london/app/Http/Middleware/SetLocale.php:18)
  at App\Http\Middleware\SetLocale->handle()
     (/home/forge/timetable.london/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:167)
  at Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
     (/home/forge/timetable.london/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php:78)
  at Illuminate\Foundation\Http\Middleware\VerifyCsrfToken->handle()
     (/home/forge/timetable.london/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:167)
  at Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
     (/home/forge/timetable.london/vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php:49)
  at Illuminate\View\Middleware\ShareErrorsFromSession->handle()
     (/home/forge/timetable.london/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:167)
  at Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
     (/home/forge/timetable.london/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php:121)
  at Illuminate\Session\Middleware\StartSession->handleStatefulRequest()
     (/home/forge/timetable.london/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php:63)
  at Illuminate\Session\Middleware\StartSession->handle()
     (/home/forge/timetable.london/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:167)
  at Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
     (/home/forge/timetable.london/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php:37)
  at Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse->handle()
     (/home/forge/timetable.london/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:167)
  at Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
     (/home/forge/timetable.london/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php:67)
  at Illuminate\Cookie\Middleware\EncryptCookies->handle()
     (/home/forge/timetable.london/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:167)
  at Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
     (/home/forge/timetable.london/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:103)
  at Illuminate\Pipeline\Pipeline->then()
     (/home/forge/timetable.london/vendor/laravel/framework/src/Illuminate/Routing/Router.php:694)
  at Illuminate\Routing\Router->runRouteWithinStack()
     (/home/forge/timetable.london/vendor/laravel/framework/src/Illuminate/Routing/Router.php:669)
  at Illuminate\Routing\Router->runRoute()
     (/home/forge/timetable.london/vendor/laravel/framework/src/Illuminate/Routing/Router.php:635)
  at Illuminate\Routing\Router->dispatchToRoute()
     (/home/forge/timetable.london/vendor/laravel/framework/src/Illuminate/Routing/Router.php:624)
  at Illuminate\Routing\Router->dispatch()
     (/home/forge/timetable.london/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php:166)
  at Illuminate\Foundation\Http\Kernel->Illuminate\Foundation\Http\{closure}()
     (/home/forge/timetable.london/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:128)
  at Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
     (/home/forge/timetable.london/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php:21)
  at Illuminate\Foundation\Http\Middleware\TransformsRequest->handle()
     (/home/forge/timetable.london/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:167)
  at Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
     (/home/forge/timetable.london/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php:21)
  at Illuminate\Foundation\Http\Middleware\TransformsRequest->handle()
     (/home/forge/timetable.london/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:167)
  at Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
     (/home/forge/timetable.london/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php:27)
  at Illuminate\Foundation\Http\Middleware\ValidatePostSize->handle()
     (/home/forge/timetable.london/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:167)
  at Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
     (/home/forge/timetable.london/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php:87)
  at Illuminate\Foundation\Http\Middleware\PreventRequestsDuringMaintenance->handle()
     (/home/forge/timetable.london/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:167)
  at Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
     (/home/forge/timetable.london/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:103)
  at Illuminate\Pipeline\Pipeline->then()
     (/home/forge/timetable.london/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php:141)
  at Illuminate\Foundation\Http\Kernel->sendRequestThroughRouter()
     (/home/forge/timetable.london/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php:110)
  at Illuminate\Foundation\Http\Kernel->handle()
     (/home/forge/timetable.london/public/index.php:53)