×

Nairobi's perennial flooding crisis: a failure of promises and planning

At Nairobi Gymkhana club, Acacia xanthophloe toples gone crashing down during high wind and heavy rain that it couldn't weather the ongoing thunderstorm. July 8, 2024. [Jonah Onyango, Standard]

Nairobi's roads have turned into rivers once again with the heavy rains experienced recently pointing to a recurring issue.

And that is, the city's poor drainage system and the failure of the county government promises to address the flooding menace.

On Sunday, a section of Lang’ata Road was impassable after floodwaters submerged parts of the busy route, causing a heavy traffic snarl-up.

Also, the perimeter walls of Loreto Convent Msongari collapsed, resulting to heavy traffic on Valley Road.

The incidents, widely shared on social media, exposed how unprepared the city remains for the rainy season.

While Nairobi residents push their way through flooded streets and endure endless traffic jams, it puts to doubt the county government reactive measures that seem to bear little fruit.

Each rainy season brings the same promises of flood mitigation measures, yet the results are almost always the same.

In March 2023, following another round of devastating floods, the Nairobi County Government issued a press statement highlighting their efforts to tackle the problem.

Governor Johnson Sakaja outlined measures including daily garbage collection, street sweeping, and unclogging of drainages.

He stated the need for public cooperation to curb illegal dumping, which he cited as a major cause of flooding.

Additionally, the county announced a 21-day desilting program to clear blocked drainage systems, install culverts, and repair damaged sewer lines.

The Nairobi City Water and Sewerage Company (NCWSC) reportedly inspected and flushed 22 kilometers of sewer lines and repaired 70 manholes in preparation for the rains.

Fast forward to 2025, and the city is still grappling with the same issues. Critics argue that these efforts, while well-intentioned, have been insufficient and poorly implemented.

The floods are not just an inconvenience; they are deadly. Last year, at least four lives were lost during heavy rains in Nairobi.

Among the victims was a police officer from Kamukunji Police Station who was swept away after successfully rescuing four people who were trapped in a stall within Country Bus Station, Nairobi. His body has never been found.

Floods also disrupt businesses and damage property, resulting in significant economic losses.

Motorists often find themselves stranded, with stalled vehicles adding to the confusion.

The flooding problem is intensified by Nairobi unplanned urban growth.

According to Silas Mwambua, an urban planning expert, much of the city sits on the Nairobi River’s floodplain, with other rivers and streams crisscrossing the area.

Speaking to The Standard, he said that over the years, rapid population growth from 100,000 residents in the early 20th century to over 4.5 million todays, has outpaced the development of critical infrastructure.

“Less than half of Nairobi's residents are connected to a proper sewage system, leaving open sewers in many informal settlements. These often overflow during heavy rains, worsening the flooding,” said Mwambua.

Additionally, he said that encroachment on riparian land and the disappearance of open spaces have disrupted natural drainage systems.

According to him, flooding in Nairobi is not a new phenomenon.

“The city’s colonial-era planners recognized its location on soggy land with poor drainage. Despite multiple masterplans and blueprints, the problem has persisted, largely due to poor implementation,” he said.

Last year, in slum areas like Mukuru and Mathare, homes built along river valleys were particularly vulnerable.

After a heavy downpour, residents of Mathare were seen stranded on rooftops as floodwaters engulfed their homes. Tragically, over a dozen people drowned in the Mathare River.

The government, has since demolished homes in the informal settlements bordering the rivers in the city with more than 30,000 people evacuated as part of plan to avoid future calamity.

According to the Kenya Meteorological Department’s forecast for January 28 to February 3, 2025, Nairobi is expected to experience morning rains and afternoon thunderstorms. A forecast that signals more difficult days ahead for the city dwellers.

Mwambua argued that the flooding crisis in Nairobi requires a long-term, multi-faceted approach.

“Nairobi needs a comprehensive overhaul of its drainage infrastructure, incorporating modern technology to manage stormwater effectively,” he said.

Mwambua added: “The county government must enforce strict regulations to prevent construction on riparian land and wetlands. Unauthorized structures in flood prone areas should be removed.” 

Request history8.1.26PHP Version1.34sRequest Duration5MBMemory UsageGET {category}/article/{id}/{slug}Route
    • Booting (13.42ms)time
    • Application (1.33s)time
    • 1 x Application (99%)
      1.33s
      1 x Booting (1%)
      13.42ms
      11 templates were rendered
      • 1x mainsite.articlearticle.blade.php#?blade
      • 1x mainsite.partials.topsectionsubscribetopsectionsubscribe.blade.php#?blade
      • 1x common.vocalizedvocalized.blade.php#?blade
      • 1x mainsite.partials.footerfooter.blade.php#?blade
      • 1x mainsite.layouts.appapp.blade.php#?blade
      • 1x mainsite.partials.metasmetas.blade.php#?blade
      • 1x mainsite.partials.topbartopbar.blade.php#?blade
      • 1x mainsite.partials.logo_sectionlogo_section.blade.php#?blade
      • 1x mainsite.partials.menumenu.blade.php#?blade
      • 1x mainsite.partials.streamingstreaming.blade.php#?blade
      • 1x mainsite.partials.stickybottomstickybottom.blade.php#?blade
      uri
      GET {category}/article/{id}/{slug}
      middleware
      web
      controller
      App\Http\Controllers\MainsiteController@article
      namespace
      prefix
      where
      file
      app/Http/Controllers/MainsiteController.php:610-1128
      35 statements were executed (4 duplicates)Show only duplicates574ms
      • Articles.php#513standard_digital_mainConnection Established
        Backtrace
        • app/Utils/Articles.php:513
        • app/Http/Controllers/MainsiteController.php:657
        • vendor/laravel/framework/src/Illuminate/Cache/Repository.php:397
        • vendor/laravel/framework/src/Illuminate/Cache/CacheManager.php:408
        • app/Http/Controllers/MainsiteController.php:658
      • Articles.php#520standard_digital_main4.33msselect `id`, `site_id`, `article_category_id`, `title`, `long_title`, `thumbnail_url`, `story`, `published_at`, `premium`, `keywords`, `summary` from `articles` where `id` = '2001510573' and `published_at` <= '2025-03-30 23:04:00' and `deleted_at` is null
        Bindings
        • 0: 2001510573
        • 1: 2025-03-30 23:04:00
        Backtrace
        • app/Utils/Articles.php:520
        • app/Http/Controllers/MainsiteController.php:657
        • vendor/laravel/framework/src/Illuminate/Cache/Repository.php:397
        • vendor/laravel/framework/src/Illuminate/Cache/CacheManager.php:408
        • app/Http/Controllers/MainsiteController.php:658
      • Articles.php#1435standard_digital_main760μsselect * from `days_quote` where `deleted_at` is null and `quote_day` = '2025-03-30'
        Bindings
        • 0: 2025-03-30
        Backtrace
        • app/Utils/Articles.php:1435
        • app/Http/Controllers/MainsiteController.php:660
        • vendor/laravel/framework/src/Illuminate/Cache/Repository.php:397
        • vendor/laravel/framework/src/Illuminate/Cache/CacheManager.php:408
        • app/Http/Controllers/MainsiteController.php:661
      • Builder.php#20standard_digital_main1.16msselect `authors`.*, `article_authors`.`article_id` as `pivot_article_id`, `article_authors`.`author_id` as `pivot_author_id` from `authors` inner join `article_authors` on `authors`.`id` = `article_authors`.`author_id` where `article_authors`.`article_id` = 2001510573 and `authors`.`deleted_at` is null
        Bindings
        • 0: 2001510573
        Backtrace
        • vendor/rennokki/laravel-eloquent-query-cache/src/Query/Builder.php:20
        • vendor/rennokki/laravel-eloquent-query-cache/src/Traits/QueryCacheModule.php:103
        • vendor/laravel/framework/src/Illuminate/Cache/Repository.php:397
        • vendor/rennokki/laravel-eloquent-query-cache/src/Traits/QueryCacheModule.php:84
        • vendor/rennokki/laravel-eloquent-query-cache/src/Query/Builder.php:21
      • Articles.php#147standard_digital_main810μsselect `id` from `article_categories` where `site_id` = 1 and `id` = 1 or `parent_id` = 1 and `deleted_at` is null
        Bindings
        • 0: 1
        • 1: 1
        • 2: 1
        Backtrace
        • app/Utils/Articles.php:147
        • app/Http/Controllers/MainsiteController.php:727
        • vendor/laravel/framework/src/Illuminate/Cache/Repository.php:397
        • vendor/laravel/framework/src/Illuminate/Cache/CacheManager.php:408
        • app/Http/Controllers/MainsiteController.php:728
      • Articles.php#164standard_digital_main63.91msselect `id`, `article_category_id`, `title`, `thumbnail_url`, `published_at`, `premium` from `articles` where `article_category_id` in (1, 11, 12, 13, 14, 15, 16, 17, 18, 303, 305, 306, 388) and `site_id` = 1 and `deleted_at` is null and `published_at` <= '2025-03-30 23:04:00' order by `published_at` desc, `list_order` asc, `parent_category_list_order` asc limit 10 offset 0
        Bindings
        • 0: 1
        • 1: 11
        • 2: 12
        • 3: 13
        • 4: 14
        • 5: 15
        • 6: 16
        • 7: 17
        • 8: 18
        • 9: 303
        • 10: 305
        • 11: 306
        • 12: 388
        • 13: 1
        • 14: 2025-03-30 23:04:00
        Backtrace
        • app/Utils/Articles.php:164
        • app/Http/Controllers/MainsiteController.php:727
        • vendor/laravel/framework/src/Illuminate/Cache/Repository.php:397
        • vendor/laravel/framework/src/Illuminate/Cache/CacheManager.php:408
        • app/Http/Controllers/MainsiteController.php:728
      • Articles.php#164standard_digital_main720μsselect `id`, `name`, `parent_id` from `article_categories` where `article_categories`.`id` in (1, 14, 15, 16)
        Backtrace
        • app/Utils/Articles.php:164
        • app/Http/Controllers/MainsiteController.php:727
        • vendor/laravel/framework/src/Illuminate/Cache/Repository.php:397
        • vendor/laravel/framework/src/Illuminate/Cache/CacheManager.php:408
        • app/Http/Controllers/MainsiteController.php:728
      • Articles.php#53standard_digital_main830μsselect `id`, `name`, `short_name`, `parent_id`, `site_id` from `article_categories` where `id` = 1
        Bindings
        • 0: 1
        Backtrace
        • app/Utils/Articles.php:53
        • app/Utils/Articles.php:338
        • app/Http/Controllers/MainsiteController.php:737
        • vendor/laravel/framework/src/Illuminate/Cache/Repository.php:397
        • vendor/laravel/framework/src/Illuminate/Cache/CacheManager.php:408
      • Articles.php#53standard_digital_main650μsselect `id`, `name`, `short_name`, `parent_id`, `site_id` from `article_categories` where `id` = 588
        Bindings
        • 0: 588
        Backtrace
        • app/Utils/Articles.php:53
        • app/Utils/Articles.php:343
        • app/Http/Controllers/MainsiteController.php:737
        • vendor/laravel/framework/src/Illuminate/Cache/Repository.php:397
        • vendor/laravel/framework/src/Illuminate/Cache/CacheManager.php:408
      • Articles.php#688standard_digital_main104msselect `id`, `site_id`, `article_category_id`, `title`, `thumbnail_url`, `story`, `published_at`, `premium` from `articles` where (`keywords` LIKE '%[\"Nairobi Floods\",\"Nairobi Planning\",\"Governor Johnstone Sakaja\",\"Nairobi County Government\"]%') and `site_id` = 1 and `published_at` <= '2025-03-30 23:04:00' and `deleted_at` is null and `id` not in ('2001510573') order by `published_at` desc limit 4 offset 0
        Bindings
        • 0: %["Nairobi Floods","Nairobi Planning","Governor Johnstone Sakaja","Nairobi County Government"]%
        • 1: 1
        • 2: 2025-03-30 23:04:00
        • 3: 2001510573
        Backtrace
        • app/Utils/Articles.php:688
        • app/Http/Controllers/MainsiteController.php:821
        • vendor/laravel/framework/src/Illuminate/Cache/Repository.php:397
        • vendor/laravel/framework/src/Illuminate/Cache/CacheManager.php:408
        • app/Http/Controllers/MainsiteController.php:822
      • Articles.php#424standard_digital_main83.17msselect `id`, `article_category_id`, `title`, `thumbnail_url`, `published_at`, `premium` from `articles` where (`site_id` = 1 or `site_id` = 16 or `site_id` = 20) and `deleted_at` is null and `published_at` <= '2025-03-30 23:04:01' and `published_at` >= '2025-03-30 22:04:01' order by RAND(), `published_at` desc, `homepage_list_order` asc, `list_order` asc limit 4 offset 0
        Bindings
        • 0: 1
        • 1: 16
        • 2: 20
        • 3: 2025-03-30 23:04:01
        • 4: 2025-03-30 22:04:01
        Backtrace
        • app/Utils/Articles.php:424
        • app/Http/Controllers/MainsiteController.php:825
        • vendor/laravel/framework/src/Illuminate/Cache/Repository.php:397
        • vendor/laravel/framework/src/Illuminate/Cache/CacheManager.php:408
        • app/Http/Controllers/MainsiteController.php:826
      • Articles.php#424standard_digital_main650μsselect `id`, `name`, `parent_id` from `article_categories` where `article_categories`.`id` in (29, 366)
        Backtrace
        • app/Utils/Articles.php:424
        • app/Http/Controllers/MainsiteController.php:825
        • vendor/laravel/framework/src/Illuminate/Cache/Repository.php:397
        • vendor/laravel/framework/src/Illuminate/Cache/CacheManager.php:408
        • app/Http/Controllers/MainsiteController.php:826
      • Articles.php#147standard_digital_main670μsselect `id` from `article_categories` where `site_id` = 1 and `id` = 480 or `parent_id` = 480 and `deleted_at` is null
        Bindings
        • 0: 1
        • 1: 480
        • 2: 480
        Backtrace
        • app/Utils/Articles.php:147
        • app/Http/Controllers/MainsiteController.php:829
        • vendor/laravel/framework/src/Illuminate/Cache/Repository.php:397
        • vendor/laravel/framework/src/Illuminate/Cache/CacheManager.php:408
        • app/Http/Controllers/MainsiteController.php:830
      • Articles.php#164standard_digital_main1.31msselect `id`, `article_category_id`, `title`, `thumbnail_url`, `published_at`, `premium` from `articles` where `article_category_id` in (480, 481, 482, 719) and `site_id` = 1 and `deleted_at` is null and `published_at` <= '2025-03-30 23:04:01' order by `published_at` desc, `list_order` asc, `parent_category_list_order` asc limit 4 offset 0
        Bindings
        • 0: 480
        • 1: 481
        • 2: 482
        • 3: 719
        • 4: 1
        • 5: 2025-03-30 23:04:01
        Backtrace
        • app/Utils/Articles.php:164
        • app/Http/Controllers/MainsiteController.php:829
        • vendor/laravel/framework/src/Illuminate/Cache/Repository.php:397
        • vendor/laravel/framework/src/Illuminate/Cache/CacheManager.php:408
        • app/Http/Controllers/MainsiteController.php:830
      • Articles.php#164standard_digital_main720μsselect `id`, `name`, `parent_id` from `article_categories` where `article_categories`.`id` in (480, 482)
        Backtrace
        • app/Utils/Articles.php:164
        • app/Http/Controllers/MainsiteController.php:829
        • vendor/laravel/framework/src/Illuminate/Cache/Repository.php:397
        • vendor/laravel/framework/src/Illuminate/Cache/CacheManager.php:408
        • app/Http/Controllers/MainsiteController.php:830
      • Articles.php#753standard_digital_main71.08msselect `id`, `article_category_id`, `title`, `thumbnail_url`, `published_at`, `premium` from `articles` where (`premium` = 1 or `article_category_id` = 486) and `site_id` = '1' and `deleted_at` is null and `published_at` <= '2025-03-30 23:04:01' and `homepage_list_order` is not null order by `published_at` desc, `homepage_list_order` asc, `list_order` asc limit 4 offset 0
        Bindings
        • 0: 1
        • 1: 486
        • 2: 1
        • 3: 2025-03-30 23:04:01
        Backtrace
        • app/Utils/Articles.php:753
        • app/Http/Controllers/MainsiteController.php:837
        • vendor/laravel/framework/src/Illuminate/Cache/Repository.php:397
        • vendor/laravel/framework/src/Illuminate/Cache/CacheManager.php:408
        • app/Http/Controllers/MainsiteController.php:838
      • Articles.php#753standard_digital_main710μsselect `id`, `name`, `parent_id` from `article_categories` where `article_categories`.`id` in (7, 588)
        Backtrace
        • app/Utils/Articles.php:753
        • app/Http/Controllers/MainsiteController.php:837
        • vendor/laravel/framework/src/Illuminate/Cache/Repository.php:397
        • vendor/laravel/framework/src/Illuminate/Cache/CacheManager.php:408
        • app/Http/Controllers/MainsiteController.php:838
      • Articles.php#819standard_digital_main27.03msselect `id`, `site_id`, `article_category_id`, `title`, `thumbnail_url`, `story`, `published_at`, `premium` from `articles` where `id` < '2001510573' and `site_id` = 1 and `published_at` <= '2025-03-30 23:04:01' and `deleted_at` is null order by `id` desc limit 1
        Bindings
        • 0: 2001510573
        • 1: 1
        • 2: 2025-03-30 23:04:01
        Backtrace
        • app/Utils/Articles.php:819
        • app/Http/Controllers/MainsiteController.php:841
        • vendor/laravel/framework/src/Illuminate/Cache/Repository.php:397
        • vendor/laravel/framework/src/Illuminate/Cache/CacheManager.php:408
        • app/Http/Controllers/MainsiteController.php:842
      • Articles.php#819standard_digital_main760μsselect `id`, `name`, `parent_id` from `article_categories` where `article_categories`.`id` in (41)
        Backtrace
        • app/Utils/Articles.php:819
        • app/Http/Controllers/MainsiteController.php:841
        • vendor/laravel/framework/src/Illuminate/Cache/Repository.php:397
        • vendor/laravel/framework/src/Illuminate/Cache/CacheManager.php:408
        • app/Http/Controllers/MainsiteController.php:842
      • Articles.php#865standard_digital_main4.03msselect `id`, `site_id`, `article_category_id`, `title`, `thumbnail_url`, `story`, `published_at`, `premium` from `articles` where `id` > '2001510573' and `site_id` = 1 and `deleted_at` is null and `published_at` <= '2025-03-30 23:04:01' limit 1
        Bindings
        • 0: 2001510573
        • 1: 1
        • 2: 2025-03-30 23:04:01
        Backtrace
        • app/Utils/Articles.php:865
        • app/Http/Controllers/MainsiteController.php:841
        • vendor/laravel/framework/src/Illuminate/Cache/Repository.php:397
        • vendor/laravel/framework/src/Illuminate/Cache/CacheManager.php:408
        • app/Http/Controllers/MainsiteController.php:842
      • Articles.php#865standard_digital_main860μsselect `id`, `name`, `parent_id` from `article_categories` where `article_categories`.`id` in (7)
        Backtrace
        • app/Utils/Articles.php:865
        • app/Http/Controllers/MainsiteController.php:841
        • vendor/laravel/framework/src/Illuminate/Cache/Repository.php:397
        • vendor/laravel/framework/src/Illuminate/Cache/CacheManager.php:408
        • app/Http/Controllers/MainsiteController.php:842
      • Articles.php#1288standard_digital_main4.51msselect `id`, `site_id`, `article_category_id`, `title`, `thumbnail_url`, `story`, `published_at`, `premium` from `articles` where `published_at` <= '2025-03-30 23:04:01' and `article_category_id` = 1 and `site_id` = 1 and `id` not in ('2001510573') order by `homepage_list_order` asc, `published_at` desc limit 6 offset 0
        Bindings
        • 0: 2025-03-30 23:04:01
        • 1: 1
        • 2: 1
        • 3: 2001510573
        Backtrace
        • app/Utils/Articles.php:1288
        • app/Http/Controllers/MainsiteController.php:845
        • vendor/laravel/framework/src/Illuminate/Cache/Repository.php:397
        • vendor/laravel/framework/src/Illuminate/Cache/CacheManager.php:408
        • app/Http/Controllers/MainsiteController.php:846
      • Articles.php#1288standard_digital_main1.06msselect `id`, `name`, `parent_id` from `article_categories` where `article_categories`.`id` in (1)
        Backtrace
        • app/Utils/Articles.php:1288
        • app/Http/Controllers/MainsiteController.php:845
        • vendor/laravel/framework/src/Illuminate/Cache/Repository.php:397
        • vendor/laravel/framework/src/Illuminate/Cache/CacheManager.php:408
        • app/Http/Controllers/MainsiteController.php:846
      • Builder.php#20standard_digital_main26.37msselect `videos`.`id`, `videos`.`video_category_id`, `videos`.`title`, `videos`.`video_url`, `videos`.`description`, `videos`.`published_at`, `videos`.`thumbnail_url` from `videos` inner join `video_categories` on `video_categories`.`id` = `videos`.`video_category_id` where (`keywords` LIKE '%[\"Nairobi Floods\",\"Nairobi Planning\",\"Governor Johnstone Sakaja\",\"Nairobi County Government\"]%') and `videos`.`deleted_at` is null and `video_categories`.`video_type_id` = 1 order by `published_at` desc limit 3 offset 0
        Bindings
        • 0: %["Nairobi Floods","Nairobi Planning","Governor Johnstone Sakaja","Nairobi County Government"]%
        • 1: 1
        Backtrace
        • vendor/rennokki/laravel-eloquent-query-cache/src/Query/Builder.php:20
        • vendor/rennokki/laravel-eloquent-query-cache/src/Traits/QueryCacheModule.php:103
        • vendor/laravel/framework/src/Illuminate/Cache/Repository.php:397
        • vendor/rennokki/laravel-eloquent-query-cache/src/Traits/QueryCacheModule.php:84
        • vendor/rennokki/laravel-eloquent-query-cache/src/Query/Builder.php:21
      • Articles.php#3841standard_digital_main910μsselect count(std_trend_article_id) as count, std_trend_article_id from `std_article_trends` group by `std_trend_article_id` order by `count` desc limit 20
        Backtrace
        • app/Utils/Articles.php:3841
        • app/Http/Controllers/MainsiteController.php:853
        • vendor/laravel/framework/src/Illuminate/Cache/Repository.php:397
        • vendor/laravel/framework/src/Illuminate/Cache/CacheManager.php:408
        • app/Http/Controllers/MainsiteController.php:854
      • Articles.php#3867standard_digital_main1.39msselect `id`, `article_category_id`, `title`, `thumbnail_url`, `published_at`, `premium` from `articles` where `id` in (2001515080, 2001249065, 2000086931, 2001515119, 2001515118, 2001515083, 2001274449, 2001515078, 2001515084, 2001515039, 2001515068, 2001515103, 2001460777, 2000198221, 2001514873, 2000179290, 2001515044, 2001515081, 2001514916, 2001492206) and `deleted_at` is null and `published_at` <= '2025-03-30 23:04:01' and `homepage_list_order` is not null order by `published_at` desc, `homepage_list_order` asc, `list_order` asc limit 5
        Bindings
        • 0: 2001515080
        • 1: 2001249065
        • 2: 2000086931
        • 3: 2001515119
        • 4: 2001515118
        • 5: 2001515083
        • 6: 2001274449
        • 7: 2001515078
        • 8: 2001515084
        • 9: 2001515039
        • 10: 2001515068
        • 11: 2001515103
        • 12: 2001460777
        • 13: 2000198221
        • 14: 2001514873
        • 15: 2000179290
        • 16: 2001515044
        • 17: 2001515081
        • 18: 2001514916
        • 19: 2001492206
        • 20: 2025-03-30 23:04:01
        Backtrace
        • app/Utils/Articles.php:3867
        • app/Http/Controllers/MainsiteController.php:853
        • vendor/laravel/framework/src/Illuminate/Cache/Repository.php:397
        • vendor/laravel/framework/src/Illuminate/Cache/CacheManager.php:408
        • app/Http/Controllers/MainsiteController.php:854
      • Articles.php#3867standard_digital_main700μsselect `id`, `name`, `parent_id` from `article_categories` where `article_categories`.`id` in (6, 263, 264, 265, 282)
        Backtrace
        • app/Utils/Articles.php:3867
        • app/Http/Controllers/MainsiteController.php:853
        • vendor/laravel/framework/src/Illuminate/Cache/Repository.php:397
        • vendor/laravel/framework/src/Illuminate/Cache/CacheManager.php:408
        • app/Http/Controllers/MainsiteController.php:854
      • CookieTool.php#185standard_digital_main930μsselect * from `settings` where `meta_name` = 'article_age' limit 1
        Bindings
        • 0: article_age
        Backtrace
        • app/Utils/CookieTool.php:185
        • app/Http/Controllers/MainsiteController.php:870
        • vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
      • helper.php#424standard_digital_main890μsselect * from article_categories where id = '1'
        Backtrace
        • app/Library/helper.php:424
        • vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php:110
        • vendor/laravel/framework/src/Illuminate/View/Engines/PhpEngine.php:58
        • vendor/laravel/framework/src/Illuminate/View/Engines/CompilerEngine.php:70
        • vendor/laravel/framework/src/Illuminate/View/View.php:195
      • helper.php#424standard_digital_main630μsselect * from article_categories where id = '1'
        Backtrace
        • app/Library/helper.php:424
        • vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php:110
        • vendor/laravel/framework/src/Illuminate/View/Engines/PhpEngine.php:58
        • vendor/laravel/framework/src/Illuminate/View/Engines/CompilerEngine.php:70
        • vendor/laravel/framework/src/Illuminate/View/View.php:195
      • helper.php#424standard_digital_main710μsselect * from article_categories where id = '1'
        Backtrace
        • app/Library/helper.php:424
        • vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php:110
        • vendor/laravel/framework/src/Illuminate/View/Engines/PhpEngine.php:58
        • vendor/laravel/framework/src/Illuminate/View/Engines/CompilerEngine.php:70
        • vendor/laravel/framework/src/Illuminate/View/View.php:195
      • helper.php#424standard_digital_main660μsselect * from article_categories where id = '1'
        Backtrace
        • app/Library/helper.php:424
        • vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php:110
        • vendor/laravel/framework/src/Illuminate/View/Engines/PhpEngine.php:58
        • vendor/laravel/framework/src/Illuminate/View/Engines/CompilerEngine.php:70
        • vendor/laravel/framework/src/Illuminate/View/View.php:195
      • Articles.php#1350standard_digital_main164msselect * from `articles` where `deleted_at` is null and `published_at` <= '2025-03-30 23:04:02' and (`keywords` like '%Nairobi Floods%' or `keywords` like '%Nairobi Planning%' or `keywords` like '%Governor Johnstone Sakaja%' or `keywords` like '%Nairobi County Government%') and (`site_id` = 1 or `site_id` = 16 or `site_id` = 20) and `id` <> '2001510573' order by `published_at` desc limit 3
        Bindings
        • 0: 2025-03-30 23:04:02
        • 1: %Nairobi Floods%
        • 2: %Nairobi Planning%
        • 3: %Governor Johnstone Sakaja%
        • 4: %Nairobi County Government%
        • 5: 1
        • 6: 16
        • 7: 20
        • 8: 2001510573
        Backtrace
        • app/Utils/Articles.php:1350
        • app/Utils/Articles.php:1674
        • view::mainsite.article:568
        • vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php:110
        • vendor/laravel/framework/src/Illuminate/View/Engines/PhpEngine.php:58
      • Builder.php#20standard_digital_main820μsselect `authors`.*, `article_authors`.`article_id` as `pivot_article_id`, `article_authors`.`author_id` as `pivot_author_id` from `authors` inner join `article_authors` on `authors`.`id` = `article_authors`.`author_id` where `article_authors`.`article_id` = 2001515119 and `authors`.`deleted_at` is null
        Bindings
        • 0: 2001515119
        Backtrace
        • vendor/rennokki/laravel-eloquent-query-cache/src/Query/Builder.php:20
        • vendor/rennokki/laravel-eloquent-query-cache/src/Traits/QueryCacheModule.php:103
        • vendor/laravel/framework/src/Illuminate/Cache/Repository.php:397
        • vendor/rennokki/laravel-eloquent-query-cache/src/Traits/QueryCacheModule.php:84
        • vendor/rennokki/laravel-eloquent-query-cache/src/Query/Builder.php:21
      • Builder.php#20standard_digital_main2.07msselect `authors`.*, `article_authors`.`article_id` as `pivot_article_id`, `article_authors`.`author_id` as `pivot_author_id` from `authors` inner join `article_authors` on `authors`.`id` = `article_authors`.`author_id` where `article_authors`.`article_id` = 2001515117 and `authors`.`deleted_at` is null
        Bindings
        • 0: 2001515117
        Backtrace
        • vendor/rennokki/laravel-eloquent-query-cache/src/Query/Builder.php:20
        • vendor/rennokki/laravel-eloquent-query-cache/src/Traits/QueryCacheModule.php:103
        • vendor/laravel/framework/src/Illuminate/Cache/Repository.php:397
        • vendor/rennokki/laravel-eloquent-query-cache/src/Traits/QueryCacheModule.php:84
        • vendor/rennokki/laravel-eloquent-query-cache/src/Query/Builder.php:21
      • app.blade.php#825standard_digital_main1.1msselect * from `favourite_topics` where `status` = 1
        Bindings
        • 0: 1
        Backtrace
        • view::mainsite.layouts.app:825
        • vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php:110
        • vendor/laravel/framework/src/Illuminate/View/Engines/PhpEngine.php:58
        • vendor/laravel/framework/src/Illuminate/View/Engines/CompilerEngine.php:70
        • vendor/laravel/framework/src/Illuminate/View/View.php:195
      App\Models\Article
      38Article.php#?
      App\Models\Category
      37Category.php#?
      App\Models\Trending
      20Trending.php#?
      App\Topic
      16Topic.php#?
      App\Models\Author
      14Author.php#?
          _token
          khyP0DB9MmZwVh5iL8IY3ftr4H9unlZ5xvnBklIQ
          offset
          0
          _previous
          array:1 [ "url" => "http://www.standardmedia.co.ke/main-staging/counties/article/2001510573/nairob...
          _flash
          array:2 [ "old" => [] "new" => [] ]
          path_info
          /counties/article/2001510573/nairobis-perennial-flooding-crisis-a-failure-of-promises-and-planning
          status_code
          200
          
          status_text
          OK
          format
          html
          content_type
          text/html; charset=UTF-8
          request_query
          []
          
          request_request
          []
          
          request_headers
          0 of 0
          array:23 [ "cf-ray" => array:1 [ 0 => "928a36b17fd00013-EWR" ] "x-forwarded-for" => array:1 [ 0 => "18.191.4.164" ] "host" => array:1 [ 0 => "www.standardmedia.co.ke" ] "cf-connecting-ip" => array:1 [ 0 => "18.191.4.164" ] "accept-encoding" => array:1 [ 0 => "gzip, br" ] "priority" => array:1 [ 0 => "u=0, i" ] "x-forwarded-proto" => array:1 [ 0 => "https" ] "sec-fetch-dest" => array:1 [ 0 => "document" ] "sec-fetch-user" => array:1 [ 0 => "?1" ] "cf-visitor" => array:1 [ 0 => "{"scheme":"https"}" ] "cf-ipcountry" => array:1 [ 0 => "US" ] "sec-fetch-mode" => array:1 [ 0 => "navigate" ] "cdn-loop" => array:1 [ 0 => "cloudflare; loops=1" ] "sec-fetch-site" => array:1 [ 0 => "none" ] "accept" => array:1 [ 0 => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" ] "connection" => array:1 [ 0 => "Keep-Alive" ] "user-agent" => array:1 [ 0 => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" ] "pragma" => array:1 [ 0 => "no-cache" ] "cache-control" => array:1 [ 0 => "no-cache" ] "sec-ch-ua" => array:1 [ 0 => ""HeadlessChrome";v="129", "Not=A?Brand";v="8", "Chromium";v="129"" ] "sec-ch-ua-mobile" => array:1 [ 0 => "?0" ] "sec-ch-ua-platform" => array:1 [ 0 => ""Windows"" ] "upgrade-insecure-requests" => array:1 [ 0 => "1" ] ]
          request_cookies
          []
          
          response_headers
          0 of 0
          array:5 [ "content-type" => array:1 [ 0 => "text/html; charset=UTF-8" ] "cache-control" => array:1 [ 0 => "no-cache, private" ] "date" => array:1 [ 0 => "Sun, 30 Mar 2025 20:04:02 GMT" ] "set-cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6Im1Pa0NYSnEwQVI0QjVIYzV1cytUMmc9PSIsInZhbHVlIjoidkZKSnoyR1dRZlFMcG1ud0xqb2VmNnpKVWlGNklKRUExQjRGbnFtdEhUYkUvQ1FTWEpSSlE3SkpyZ2VZQ1NEVkhLd1hpOTlyMnc3QWE1dzFCYWlqWnRsV21scmZHZ0t4Y2hPVHVLc0g5RnZ2VWlZYmlqS201QkVPbDlKT0gwWU0iLCJtYWMiOiJiYmJjNGFjYmVlNzEwZDIwZmMyZjQ1YmVmMzJlOWY4OTRmODcwNTQ2OGU0NTU1ZjRlYjk4OWU5Y2RiZWE4ZmMxIiwidGFnIjoiIn0%3D; expires=Wed, 30 Apr 2025 06:33:02 GMT; Max-Age=2629740; path=/; samesite=laxXSRF-TOKEN=eyJpdiI6Im1Pa0NYSnEwQVI0QjVIYzV1cytUMmc9PSIsInZhbHVlIjoidkZKSnoyR1dRZlFMcG1ud0xqb2VmNnpKVWlGNklKRUExQjRGbnFtdEhUYkUvQ1FTWEpSSlE3SkpyZ2VZQ1NEVkhLd1hpO" 1 => "thestandardmediagroup_session=eyJpdiI6IjJyNW81eXhzUU5MOVEvNjdnTWhXbFE9PSIsInZhbHVlIjoiNHJmMW5tV1FQT3dsMGRHUTM5ZVhZY0ZSclFERFhjYXBuREJYUm5VdGRhSThsc08vbWU3V1pCOUovbTRndU1XUDFPU0htalg0R0NTU0hxYVVNOHRQVUVVbnpzMVVLbUdleStiSm9XdHNETXArL2Q4VjhTWVpiOHpZVUkvTXYyNEwiLCJtYWMiOiJiYmFhZmRmNzY1MzFkMjg0OTc1MzhlMDFmZWMwMDMxMzc0NGIzZGRlYzk5ZGI1NWQ2NDVmNjFlMDg5NWMxM2QwIiwidGFnIjoiIn0%3D; expires=Wed, 30 Apr 2025 06:33:02 GMT; Max-Age=2629740; path=/; httponly; samesite=laxthestandardmediagroup_session=eyJpdiI6IjJyNW81eXhzUU5MOVEvNjdnTWhXbFE9PSIsInZhbHVlIjoiNHJmMW5tV1FQT3dsMGRHUTM5ZVhZY0ZSclFERFhjYXBuREJYUm5VdGRhSThsc08vbWU3V1pCOU" ] "Set-Cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6Im1Pa0NYSnEwQVI0QjVIYzV1cytUMmc9PSIsInZhbHVlIjoidkZKSnoyR1dRZlFMcG1ud0xqb2VmNnpKVWlGNklKRUExQjRGbnFtdEhUYkUvQ1FTWEpSSlE3SkpyZ2VZQ1NEVkhLd1hpOTlyMnc3QWE1dzFCYWlqWnRsV21scmZHZ0t4Y2hPVHVLc0g5RnZ2VWlZYmlqS201QkVPbDlKT0gwWU0iLCJtYWMiOiJiYmJjNGFjYmVlNzEwZDIwZmMyZjQ1YmVmMzJlOWY4OTRmODcwNTQ2OGU0NTU1ZjRlYjk4OWU5Y2RiZWE4ZmMxIiwidGFnIjoiIn0%3D; expires=Wed, 30-Apr-2025 06:33:02 GMT; path=/XSRF-TOKEN=eyJpdiI6Im1Pa0NYSnEwQVI0QjVIYzV1cytUMmc9PSIsInZhbHVlIjoidkZKSnoyR1dRZlFMcG1ud0xqb2VmNnpKVWlGNklKRUExQjRGbnFtdEhUYkUvQ1FTWEpSSlE3SkpyZ2VZQ1NEVkhLd1hpO" 1 => "thestandardmediagroup_session=eyJpdiI6IjJyNW81eXhzUU5MOVEvNjdnTWhXbFE9PSIsInZhbHVlIjoiNHJmMW5tV1FQT3dsMGRHUTM5ZVhZY0ZSclFERFhjYXBuREJYUm5VdGRhSThsc08vbWU3V1pCOUovbTRndU1XUDFPU0htalg0R0NTU0hxYVVNOHRQVUVVbnpzMVVLbUdleStiSm9XdHNETXArL2Q4VjhTWVpiOHpZVUkvTXYyNEwiLCJtYWMiOiJiYmFhZmRmNzY1MzFkMjg0OTc1MzhlMDFmZWMwMDMxMzc0NGIzZGRlYzk5ZGI1NWQ2NDVmNjFlMDg5NWMxM2QwIiwidGFnIjoiIn0%3D; expires=Wed, 30-Apr-2025 06:33:02 GMT; path=/; httponlythestandardmediagroup_session=eyJpdiI6IjJyNW81eXhzUU5MOVEvNjdnTWhXbFE9PSIsInZhbHVlIjoiNHJmMW5tV1FQT3dsMGRHUTM5ZVhZY0ZSclFERFhjYXBuREJYUm5VdGRhSThsc08vbWU3V1pCOU" ] ]
          session_attributes
          0 of 0
          array:4 [ "_token" => "khyP0DB9MmZwVh5iL8IY3ftr4H9unlZ5xvnBklIQ" "offset" => 0 "_previous" => array:1 [ "url" => "http://www.standardmedia.co.ke/main-staging/counties/article/2001510573/nairobis-perennial-flooding-crisis-a-failure-of-promises-and-planning" ] "_flash" => array:2 [ "old" => [] "new" => [] ] ]
          ClearShow all
          Date ↕MethodURLData
          #12025-03-30 23:04:02GET/main-staging/counties/article/2001510573/nairobis-perennial-flooding-crisis-a-failure-of-promises-and-planning1135125