Kenya Tanzania and Zanzibar
20 Days Tanzania Safari

Kenya Tanzania and Zanzibar

Safari Overview

The spectacular Rift Valley, with the wide-open plains of east Africa is stretched before you. On this stunning safari we take in some of the very best of Kenya’s Big Five game viewing National Parks and its outstanding tribal people and scenery. The National Parks and Reserves of northern Tanzania need little introduction to wildlife enthusiasts. The vast Serengeti National Park, is arguably the finest reserve on the continent, home to millions of plains animals and a profusion of predators. The Ngorongoro Crater is the largest intact volcanic caldera in the world, whilst Tarangire National Park is well known for its dense elephant population and magnificent Baobab trees. 

Add to this, Aberdare is dominated by forests and moorlands which habit a huge population of birds making the park a birding paradise, in Aberdare National Park there is over 250 bird species include Aberdare cisticola endemic specie to the region. Africa's spectacular Rift Valley, with the wide open plains of East Africa stretched before us. This safari explores Africa's tribal people and its wildlife unchallenged in their diversity. This safari will take you to the Kenya's best locations such as Nairobi City (2d), Aberdare (1day), Lake Nakuru (1d), Maasai Mara (2d) and Tanzania's best locations such as Arusha City (1d), Serengeti (2d), Ngorongoro Conservation Areas (2d), Tarangire (1d), Zanzibar beach (6d) and arrive and departure (2d). 


20 Days / 19 Nights

Tanzania
Safari in Tanzania


International Tour

DAY 1

PRE DAY: Arrival in Nairobi

DAY 2

Nairobi – Aberdare National Park (200 km) 4 hours

DAY 3

Aberdare - Lake Nakuru (141 km) 3 ½ hours

DAY 4

Lake Nakuru – Masai Mara National Reserve (278 km) 5 hours

DAY 5

Game Drives to Maasai Mara

DAY 6

Masai Mara to Nairobi (230 km) 4 ½ hours

DAY 7

Nairobi to Namanga then Arusha (300 km) 4½-6 hours

DAY 8

Arusha to Serengeti National Park (360 km) 5 ½ - 6 hours

DAY 9

Game Drives in Serengeti National Park

DAY 10

Serengeti National Park – Ngorongoro Crater (140 km) 3 hours

DAY 11

Game Drives in Ngorongoro Crater

DAY 12

Karatu – Tarangire – Arusha (180km) 3 hours

DAY 13

JRO Airport | ARK Airport - fly to Zanzibar 2 hours (415km)

DAY 14

Stone Town - Spice Plantation - Nungwi Beach

DAY 15

Jambiani Beach & Lunch at The Rock Restaurant in Michamvi

DAY 16

Mnemba Atoll Snorkeling Trip

DAY 17

Zanzibar Jozani Forest Tour

DAY 18

Zanzibar Beach Holiday

DAY 19

Zanzibar Prison Island Tour

DAY 20

POST: Drop off at Zanzibar Airport

Camping Accommodation

Basic Accommodation

Budget Accommodation

Standard Accommodation

MidRange Accommodation

Luxury Accommodation

The Tour Price Includes


  • Safari Start and end in Nairobi | Zanzibar.
  • Pick up and drop off at JKIA or Znz Airport.
  • Bottled mineral water in the vehicle while on safari (1.5Ltr per day).
  • In case of a camping safari: camping gear like tents, camping mattresses, sleeping bags, pillows, camping chairs, etc.
  • Accommodation and meals per the itinerary (B=breakfast, L=lunch, D=dinner).
  • Dinner on day 1, breakfast, lunch and dinner on day 2-19 and Breakfast on day 20 of your trip. This tour offers Vegetarian, Vegan and Halal food options on request. Simply let our administrator team know the food option that you prefer.
  • Ground transportation in a 8 setter or 6 setter 4x4 Safari vehicle with English Speaking Driver guide: -
  • 8 setter Safari vehicle has 6 windows seats (in the passenger cabin) and 1 window seat next to the driver (in front)
  • 6 setter Safari vehicle has 4 windows seats (in the passenger cabin) and 1 window seat next to the driver (in front)
  • Game drives, all park entry fees, transfer, accommodations and government tax 18% VAT on tour fees and service which cost nearly 100% of the total cost.
  • Accommodation of your choice: from budget camping to staying in luxurious lodges, we can arrange it for you (The prices mentioned above are for overnight stays in Campsite | Basic | Budget | Standard | Mid-range | Luxury | Superior or VIP hotels/lodges/tented camps according to your choice).
  • Masai Mara Hot-air Balloon safari  USD $560 Per Person sharing balloon (Can be arranged upon request at an extra cost, Please ask us at the time of the booking)
  • Ngorongoro | Ndutu balloon ride, per person Adult (Above 16yrs) $580, Child (7-16yrs) $530 {20th Dec - 31st March} Daily launch at dawn (6:30am) returning approx. 9:45am (Option, If you need).
  • Serengeti balloon ride, per person Adult (Above 16yrs) $599, Child (7-16yrs) $545. {Central All year round, Western 15th May - 30th Oct, and North 15th June - 15th Jan} Daily launch at dawn (6:30am) returning approx. 9:45am (Option, If you need).

The Tour Price Excludes


  • Meals not listed above. eg Breakfast & lunch on the first day, and Lunch & Dinner on the last day.
  • Tanzania & Kenya Visa cost which is 50% except for Canadian and USA passport holders which is US$100 Per Visa.
  • International and Domestic Flights and departure taxes (Quoted separately where applicable)
  • Optional activities and excursions (short safari/tour after your Safari can be arranged upon request at an extra cost).
  • Post accommodation in Zanzibar. If you wish, we can however assist you in finding a place that corresponds to your needs and budget.
  • Serengeti Black Rhinos Project (Moru Kopjes) fees: US$ 100 + 35US$ (VAT18% & other fees) Per Person Per Day (Option, If you need).
  • Flights or other transport to/from Dar Es Salaam | Zanzibar. We can however arrange airport pickup for you. Let us know your itinerary and we’ll make it happen!
  • Domestic flight from Maasai Mara to Serengeti | Zanzibar (ZNZ Airport) to Dar es Salaam (DAR Airport) or Kenya, Nairobi (JKIA Airport) {Can be arranged upon request at an extra cost, Please ask us at the time of the booking}
  • Tips for the crew. We recommend a tip of 25 USD per day for your guide, and 15 USD per day for your cook, to be divided between each member of your group.
  • Inoculations and personal insurance (e.g. Visa, Travel, Medical and Baggage insurance, A doctor for the group, Laundry, Souvenirs, Telephone, Beverages (available to purchase) and all other services that are not mentioned as included.
  • Holiday Surcharge : A supplement of US $ 40.00 per person per day will apply to all bookings on the 24th, 25th, 26th and 31 December and 1st January
  • A supplement of US $ 35.00 per person will apply to all bookings between Friday 3rd and Monday 6th April (for all 4 days) as Easter holiday surcharge.
Whoops! There was an error.
ErrorException (E_NOTICE)
fwrite(): write of 1821 bytes failed with errno=122 Disk quota exceeded ErrorException thrown with message "fwrite(): write of 1821 bytes failed with errno=122 Disk quota exceeded" Stacktrace: #11 ErrorException in /home2/kimtours/theapp/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php:131 #10 fwrite in /home2/kimtours/theapp/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php:131 #9 Monolog\Handler\StreamHandler:streamWrite in /home2/kimtours/theapp/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php:117 #8 Monolog\Handler\StreamHandler:write in /home2/kimtours/theapp/vendor/monolog/monolog/src/Monolog/Handler/AbstractProcessingHandler.php:39 #7 Monolog\Handler\AbstractProcessingHandler:handle in /home2/kimtours/theapp/vendor/monolog/monolog/src/Monolog/Logger.php:344 #6 Monolog\Logger:addRecord in /home2/kimtours/theapp/vendor/monolog/monolog/src/Monolog/Logger.php:712 #5 Monolog\Logger:error in /home2/kimtours/theapp/vendor/laravel/framework/src/Illuminate/Log/Writer.php:203 #4 Illuminate\Log\Writer:writeLog in /home2/kimtours/theapp/vendor/laravel/framework/src/Illuminate/Log/Writer.php:114 #3 Illuminate\Log\Writer:error in /home2/kimtours/theapp/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php:113 #2 Illuminate\Foundation\Exceptions\Handler:report in /home2/kimtours/theapp/app/Exceptions/Handler.php:39 #1 App\Exceptions\Handler:report in /home2/kimtours/theapp/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/HandleExceptions.php:81 #0 Illuminate\Foundation\Bootstrap\HandleExceptions:handleException in [internal]:0
11
ErrorException
/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php131
10
fwrite
/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php131
9
Monolog\Handler\StreamHandler streamWrite
/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php117
8
Monolog\Handler\StreamHandler write
/vendor/monolog/monolog/src/Monolog/Handler/AbstractProcessingHandler.php39
7
Monolog\Handler\AbstractProcessingHandler handle
/vendor/monolog/monolog/src/Monolog/Logger.php344
6
Monolog\Logger addRecord
/vendor/monolog/monolog/src/Monolog/Logger.php712
5
Monolog\Logger error
/vendor/laravel/framework/src/Illuminate/Log/Writer.php203
4
Illuminate\Log\Writer writeLog
/vendor/laravel/framework/src/Illuminate/Log/Writer.php114
3
Illuminate\Log\Writer error
/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php113
2
Illuminate\Foundation\Exceptions\Handler report
/app/Exceptions/Handler.php39
1
App\Exceptions\Handler report
/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/HandleExceptions.php81
0
Illuminate\Foundation\Bootstrap\HandleExceptions handleException
[internal]0
/home2/kimtours/theapp/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php
        if ($this->useLocking) {
            // ignoring errors here, there's not much we can do about them
            flock($this->stream, LOCK_EX);
        }
 
        $this->streamWrite($this->stream, $record);
 
        if ($this->useLocking) {
            flock($this->stream, LOCK_UN);
        }
    }
 
    /**
     * Write to stream
     * @param resource $stream
     * @param array $record
     */
    protected function streamWrite($stream, array $record)
    {
        fwrite($stream, (string) $record['formatted']);
    }
 
    private function customErrorHandler($code, $msg)
    {
        $this->errorMessage = preg_replace('{^(fopen|mkdir)\(.*?\): }', '', $msg);
    }
 
    /**
     * @param string $stream
     *
     * @return null|string
     */
    private function getDirFromStream($stream)
    {
        $pos = strpos($stream, '://');
        if ($pos === false) {
            return dirname($stream);
        }
 
        if ('file://' === substr($stream, 0, 7)) {
Arguments
  1. "fwrite(): write of 1821 bytes failed with errno=122 Disk quota exceeded"
    
/home2/kimtours/theapp/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php
        if ($this->useLocking) {
            // ignoring errors here, there's not much we can do about them
            flock($this->stream, LOCK_EX);
        }
 
        $this->streamWrite($this->stream, $record);
 
        if ($this->useLocking) {
            flock($this->stream, LOCK_UN);
        }
    }
 
    /**
     * Write to stream
     * @param resource $stream
     * @param array $record
     */
    protected function streamWrite($stream, array $record)
    {
        fwrite($stream, (string) $record['formatted']);
    }
 
    private function customErrorHandler($code, $msg)
    {
        $this->errorMessage = preg_replace('{^(fopen|mkdir)\(.*?\): }', '', $msg);
    }
 
    /**
     * @param string $stream
     *
     * @return null|string
     */
    private function getDirFromStream($stream)
    {
        $pos = strpos($stream, '://');
        if ($pos === false) {
            return dirname($stream);
        }
 
        if ('file://' === substr($stream, 0, 7)) {
Arguments
  1. stream resource @7
      timed_out: false
      blocked: true
      eof: false
      wrapper_type: "plainfile"
      stream_type: "STDIO"
      mode: "a"
      unread_bytes: 0
      seekable: true
      uri: "/home2/kimtours/theapp/storage/logs/laravel.log"
      options: []
    }
    
  2. """
    [2025-06-10 22:49:24] local.ERROR: file_put_contents(): write of 212 bytes failed with errno=122 Disk quota exceeded {"exception":"[object] (ErrorException(code: 0): file_put_contents(): write of 212 bytes failed with errno=122 Disk quota exceeded at /home2/kimtours/theapp/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php:122)\n
    [stacktrace]\n
    #0 [internal function]: Illuminate\\Foundation\\Bootstrap\\HandleExceptions->handleError(8, 'file_put_conten...', '/home2/kimtours...', 122, Array)\n
    #1 /home2/kimtours/theapp/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php(122): file_put_contents('/home2/kimtours...', 'a:3:{s:6:\"_toke...', 2)\n
    #2 /home2/kimtours/theapp/vendor/laravel/framework/src/Illuminate/Session/FileSessionHandler.php(83): Illuminate\\Filesystem\\Filesystem->put('/home2/kimtours...', 'a:3:{s:6:\"_toke...', true)\n
    #3 /home2/kimtours/theapp/vendor/laravel/framework/src/Illuminate/Session/Store.php(128): Illuminate\\Session\\FileSessionHandler->write('gcU7Spx6iUd0Bct...', 'a:3:{s:6:\"_toke...')\n
    #4 /home2/kimtours/theapp/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(87): Illuminate\\Session\\Store->save()\n
    #5 /home2/kimtours/theapp/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(218): Illuminate\\Session\\Middleware\\StartSession->terminate(Object(Illuminate\\Http\\Request), Object(Illuminate\\Http\\Response))\n
    #6 /home2/kimtours/theapp/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(189): Illuminate\\Foundation\\Http\\Kernel->terminateMiddleware(Object(Illuminate\\Http\\Request), Object(Illuminate\\Http\\Response))\n
    #7 /home2/kimtours/public_html/index.php(60): Illuminate\\Foundation\\Http\\Kernel->terminate(Object(Illuminate\\Http\\Request), Object(Illuminate\\Http\\Response))\n
    #8 {main}\n
    "} \n
    """
    
/home2/kimtours/theapp/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php
            $this->createDir();
            $this->errorMessage = null;
            set_error_handler(array($this, 'customErrorHandler'));
            $this->stream = fopen($this->url, 'a');
            if ($this->filePermission !== null) {
                @chmod($this->url, $this->filePermission);
            }
            restore_error_handler();
            if (!is_resource($this->stream)) {
                $this->stream = null;
                throw new \UnexpectedValueException(sprintf('The stream or file "%s" could not be opened: '.$this->errorMessage, $this->url));
            }
        }
 
        if ($this->useLocking) {
            // ignoring errors here, there's not much we can do about them
            flock($this->stream, LOCK_EX);
        }
 
        $this->streamWrite($this->stream, $record);
 
        if ($this->useLocking) {
            flock($this->stream, LOCK_UN);
        }
    }
 
    /**
     * Write to stream
     * @param resource $stream
     * @param array $record
     */
    protected function streamWrite($stream, array $record)
    {
        fwrite($stream, (string) $record['formatted']);
    }
 
    private function customErrorHandler($code, $msg)
    {
        $this->errorMessage = preg_replace('{^(fopen|mkdir)\(.*?\): }', '', $msg);
    }
Arguments
  1. stream resource @7
      timed_out: false
      blocked: true
      eof: false
      wrapper_type: "plainfile"
      stream_type: "STDIO"
      mode: "a"
      unread_bytes: 0
      seekable: true
      uri: "/home2/kimtours/theapp/storage/logs/laravel.log"
      options: []
    }
    
  2. array:8 [
      "message" => "file_put_contents(): write of 212 bytes failed with errno=122 Disk quota exceeded"
      "context" => array:1 [
        "exception" => ErrorException {
          #message: "file_put_contents(): write of 212 bytes failed with errno=122 Disk quota exceeded"
          #code: 0
          #file: "/home2/kimtours/theapp/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php"
          #line: 122
          #severity: E_NOTICE
        }
      ]
      "level" => 400
      "level_name" => "ERROR"
      "channel" => "local"
      "datetime" => DateTime @1749595764 {
        date: 2025-06-10 22:49:24.324001 UTC (+00:00)
      }
      "extra" => []
      "formatted" => """
        [2025-06-10 22:49:24] local.ERROR: file_put_contents(): write of 212 bytes failed with errno=122 Disk quota exceeded {"exception":"[object] (ErrorException(code: 0): file_put_contents(): write of 212 bytes failed with errno=122 Disk quota exceeded at /home2/kimtours/theapp/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php:122)\n
        [stacktrace]\n
        #0 [internal function]: Illuminate\\Foundation\\Bootstrap\\HandleExceptions->handleError(8, 'file_put_conten...', '/home2/kimtours...', 122, Array)\n
        #1 /home2/kimtours/theapp/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php(122): file_put_contents('/home2/kimtours...', 'a:3:{s:6:\"_toke...', 2)\n
        #2 /home2/kimtours/theapp/vendor/laravel/framework/src/Illuminate/Session/FileSessionHandler.php(83): Illuminate\\Filesystem\\Filesystem->put('/home2/kimtours...', 'a:3:{s:6:\"_toke...', true)\n
        #3 /home2/kimtours/theapp/vendor/laravel/framework/src/Illuminate/Session/Store.php(128): Illuminate\\Session\\FileSessionHandler->write('gcU7Spx6iUd0Bct...', 'a:3:{s:6:\"_toke...')\n
        #4 /home2/kimtours/theapp/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(87): Illuminate\\Session\\Store->save()\n
        #5 /home2/kimtours/theapp/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(218): Illuminate\\Session\\Middleware\\StartSession->terminate(Object(Illuminate\\Http\\Request), Object(Illuminate\\Http\\Response))\n
        #6 /home2/kimtours/theapp/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(189): Illuminate\\Foundation\\Http\\Kernel->terminateMiddleware(Object(Illuminate\\Http\\Request), Object(Illuminate\\Http\\Response))\n
        #7 /home2/kimtours/public_html/index.php(60): Illuminate\\Foundation\\Http\\Kernel->terminate(Object(Illuminate\\Http\\Request), Object(Illuminate\\Http\\Response))\n
        #8 {main}\n
        "} \n
        """
    ]
    
/home2/kimtours/theapp/vendor/monolog/monolog/src/Monolog/Handler/AbstractProcessingHandler.php
 *
 * @author Jordi Boggiano <j.boggiano@seld.be>
 * @author Christophe Coevoet <stof@notk.org>
 */
abstract class AbstractProcessingHandler extends AbstractHandler
{
    /**
     * {@inheritdoc}
     */
    public function handle(array $record)
    {
        if (!$this->isHandling($record)) {
            return false;
        }
 
        $record = $this->processRecord($record);
 
        $record['formatted'] = $this->getFormatter()->format($record);
 
        $this->write($record);
 
        return false === $this->bubble;
    }
 
    /**
     * Writes the record down to the log of the implementing handler
     *
     * @param  array $record
     * @return void
     */
    abstract protected function write(array $record);
 
    /**
     * Processes a record.
     *
     * @param  array $record
     * @return array
     */
    protected function processRecord(array $record)
    {
Arguments
  1. array:8 [
      "message" => "file_put_contents(): write of 212 bytes failed with errno=122 Disk quota exceeded"
      "context" => array:1 [
        "exception" => ErrorException {
          #message: "file_put_contents(): write of 212 bytes failed with errno=122 Disk quota exceeded"
          #code: 0
          #file: "/home2/kimtours/theapp/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php"
          #line: 122
          #severity: E_NOTICE
        }
      ]
      "level" => 400
      "level_name" => "ERROR"
      "channel" => "local"
      "datetime" => DateTime @1749595764 {
        date: 2025-06-10 22:49:24.324001 UTC (+00:00)
      }
      "extra" => []
      "formatted" => """
        [2025-06-10 22:49:24] local.ERROR: file_put_contents(): write of 212 bytes failed with errno=122 Disk quota exceeded {"exception":"[object] (ErrorException(code: 0): file_put_contents(): write of 212 bytes failed with errno=122 Disk quota exceeded at /home2/kimtours/theapp/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php:122)\n
        [stacktrace]\n
        #0 [internal function]: Illuminate\\Foundation\\Bootstrap\\HandleExceptions->handleError(8, 'file_put_conten...', '/home2/kimtours...', 122, Array)\n
        #1 /home2/kimtours/theapp/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php(122): file_put_contents('/home2/kimtours...', 'a:3:{s:6:\"_toke...', 2)\n
        #2 /home2/kimtours/theapp/vendor/laravel/framework/src/Illuminate/Session/FileSessionHandler.php(83): Illuminate\\Filesystem\\Filesystem->put('/home2/kimtours...', 'a:3:{s:6:\"_toke...', true)\n
        #3 /home2/kimtours/theapp/vendor/laravel/framework/src/Illuminate/Session/Store.php(128): Illuminate\\Session\\FileSessionHandler->write('gcU7Spx6iUd0Bct...', 'a:3:{s:6:\"_toke...')\n
        #4 /home2/kimtours/theapp/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(87): Illuminate\\Session\\Store->save()\n
        #5 /home2/kimtours/theapp/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(218): Illuminate\\Session\\Middleware\\StartSession->terminate(Object(Illuminate\\Http\\Request), Object(Illuminate\\Http\\Response))\n
        #6 /home2/kimtours/theapp/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(189): Illuminate\\Foundation\\Http\\Kernel->terminateMiddleware(Object(Illuminate\\Http\\Request), Object(Illuminate\\Http\\Response))\n
        #7 /home2/kimtours/public_html/index.php(60): Illuminate\\Foundation\\Http\\Kernel->terminate(Object(Illuminate\\Http\\Request), Object(Illuminate\\Http\\Response))\n
        #8 {main}\n
        "} \n
        """
    ]
    
/home2/kimtours/theapp/vendor/monolog/monolog/src/Monolog/Logger.php
        }
        $ts->setTimezone(static::$timezone);
 
        $record = array(
            'message' => (string) $message,
            'context' => $context,
            'level' => $level,
            'level_name' => $levelName,
            'channel' => $this->name,
            'datetime' => $ts,
            'extra' => array(),
        );
 
        try {
            foreach ($this->processors as $processor) {
                $record = call_user_func($processor, $record);
            }
 
            while ($handler = current($this->handlers)) {
                if (true === $handler->handle($record)) {
                    break;
                }
 
                next($this->handlers);
            }
        } catch (Exception $e) {
            $this->handleException($e, $record);
        }
 
        return true;
    }
 
    /**
     * Ends a log cycle and frees all resources used by handlers.
     *
     * Closing a Handler means flushing all buffers and freeing any open resources/handles.
     * Handlers that have been closed should be able to accept log records again and re-open
     * themselves on demand, but this may not always be possible depending on implementation.
     *
     * This is useful at the end of a request and will be called automatically on every handler
Arguments
  1. array:8 [
      "message" => "file_put_contents(): write of 212 bytes failed with errno=122 Disk quota exceeded"
      "context" => array:1 [
        "exception" => ErrorException {
          #message: "file_put_contents(): write of 212 bytes failed with errno=122 Disk quota exceeded"
          #code: 0
          #file: "/home2/kimtours/theapp/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php"
          #line: 122
          #severity: E_NOTICE
        }
      ]
      "level" => 400
      "level_name" => "ERROR"
      "channel" => "local"
      "datetime" => DateTime @1749595764 {
        date: 2025-06-10 22:49:24.324001 UTC (+00:00)
      }
      "extra" => []
      "formatted" => """
        [2025-06-10 22:49:24] local.ERROR: file_put_contents(): write of 212 bytes failed with errno=122 Disk quota exceeded {"exception":"[object] (ErrorException(code: 0): file_put_contents(): write of 212 bytes failed with errno=122 Disk quota exceeded at /home2/kimtours/theapp/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php:122)\n
        [stacktrace]\n
        #0 [internal function]: Illuminate\\Foundation\\Bootstrap\\HandleExceptions->handleError(8, 'file_put_conten...', '/home2/kimtours...', 122, Array)\n
        #1 /home2/kimtours/theapp/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php(122): file_put_contents('/home2/kimtours...', 'a:3:{s:6:\"_toke...', 2)\n
        #2 /home2/kimtours/theapp/vendor/laravel/framework/src/Illuminate/Session/FileSessionHandler.php(83): Illuminate\\Filesystem\\Filesystem->put('/home2/kimtours...', 'a:3:{s:6:\"_toke...', true)\n
        #3 /home2/kimtours/theapp/vendor/laravel/framework/src/Illuminate/Session/Store.php(128): Illuminate\\Session\\FileSessionHandler->write('gcU7Spx6iUd0Bct...', 'a:3:{s:6:\"_toke...')\n
        #4 /home2/kimtours/theapp/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(87): Illuminate\\Session\\Store->save()\n
        #5 /home2/kimtours/theapp/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(218): Illuminate\\Session\\Middleware\\StartSession->terminate(Object(Illuminate\\Http\\Request), Object(Illuminate\\Http\\Response))\n
        #6 /home2/kimtours/theapp/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(189): Illuminate\\Foundation\\Http\\Kernel->terminateMiddleware(Object(Illuminate\\Http\\Request), Object(Illuminate\\Http\\Response))\n
        #7 /home2/kimtours/public_html/index.php(60): Illuminate\\Foundation\\Http\\Kernel->terminate(Object(Illuminate\\Http\\Request), Object(Illuminate\\Http\\Response))\n
        #8 {main}\n
        "} \n
        """
    ]
    
/home2/kimtours/theapp/vendor/monolog/monolog/src/Monolog/Logger.php
     * @param  array  $context The log context
     * @return bool   Whether the record has been processed
     */
    public function err($message, array $context = array())
    {
        return $this->addRecord(static::ERROR, $message, $context);
    }
 
    /**
     * Adds a log record at the ERROR level.
     *
     * This method allows for compatibility with common interfaces.
     *
     * @param  string $message The log message
     * @param  array  $context The log context
     * @return bool   Whether the record has been processed
     */
    public function error($message, array $context = array())
    {
        return $this->addRecord(static::ERROR, $message, $context);
    }
 
    /**
     * Adds a log record at the CRITICAL level.
     *
     * This method allows for compatibility with common interfaces.
     *
     * @param  string $message The log message
     * @param  array  $context The log context
     * @return bool   Whether the record has been processed
     */
    public function crit($message, array $context = array())
    {
        return $this->addRecord(static::CRITICAL, $message, $context);
    }
 
    /**
     * Adds a log record at the CRITICAL level.
     *
     * This method allows for compatibility with common interfaces.
Arguments
  1. 400
    
  2. "file_put_contents(): write of 212 bytes failed with errno=122 Disk quota exceeded"
    
  3. array:1 [
      "exception" => ErrorException {
        #message: "file_put_contents(): write of 212 bytes failed with errno=122 Disk quota exceeded"
        #code: 0
        #file: "/home2/kimtours/theapp/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php"
        #line: 122
        #severity: E_NOTICE
      }
    ]
    
/home2/kimtours/theapp/vendor/laravel/framework/src/Illuminate/Log/Writer.php
     * @return void
     */
    public function write($level, $message, array $context = [])
    {
        $this->writeLog($level, $message, $context);
    }
 
    /**
     * Write a message to Monolog.
     *
     * @param  string  $level
     * @param  string  $message
     * @param  array  $context
     * @return void
     */
    protected function writeLog($level, $message, $context)
    {
        $this->fireLogEvent($level, $message = $this->formatMessage($message), $context);
 
        $this->monolog->{$level}($message, $context);
    }
 
    /**
     * Register a file log handler.
     *
     * @param  string  $path
     * @param  string  $level
     * @return void
     */
    public function useFiles($path, $level = 'debug')
    {
        $this->monolog->pushHandler($handler = new StreamHandler($path, $this->parseLevel($level)));
 
        $handler->setFormatter($this->getDefaultFormatter());
    }
 
    /**
     * Register a daily file log handler.
     *
     * @param  string  $path
Arguments
  1. "file_put_contents(): write of 212 bytes failed with errno=122 Disk quota exceeded"
    
  2. array:1 [
      "exception" => ErrorException {
        #message: "file_put_contents(): write of 212 bytes failed with errno=122 Disk quota exceeded"
        #code: 0
        #file: "/home2/kimtours/theapp/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php"
        #line: 122
        #severity: E_NOTICE
      }
    ]
    
/home2/kimtours/theapp/vendor/laravel/framework/src/Illuminate/Log/Writer.php
     *
     * @param  string  $message
     * @param  array  $context
     * @return void
     */
    public function critical($message, array $context = [])
    {
        $this->writeLog(__FUNCTION__, $message, $context);
    }
 
    /**
     * Log an error message to the logs.
     *
     * @param  string  $message
     * @param  array  $context
     * @return void
     */
    public function error($message, array $context = [])
    {
        $this->writeLog(__FUNCTION__, $message, $context);
    }
 
    /**
     * Log a warning message to the logs.
     *
     * @param  string  $message
     * @param  array  $context
     * @return void
     */
    public function warning($message, array $context = [])
    {
        $this->writeLog(__FUNCTION__, $message, $context);
    }
 
    /**
     * Log a notice to the logs.
     *
     * @param  string  $message
     * @param  array  $context
     * @return void
Arguments
  1. "error"
    
  2. "file_put_contents(): write of 212 bytes failed with errno=122 Disk quota exceeded"
    
  3. array:1 [
      "exception" => ErrorException {
        #message: "file_put_contents(): write of 212 bytes failed with errno=122 Disk quota exceeded"
        #code: 0
        #file: "/home2/kimtours/theapp/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php"
        #line: 122
        #severity: E_NOTICE
      }
    ]
    
/home2/kimtours/theapp/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php
     */
    public function report(Exception $e)
    {
        if ($this->shouldntReport($e)) {
            return;
        }
 
        if (method_exists($e, 'report')) {
            return $e->report();
        }
 
        try {
            $logger = $this->container->make(LoggerInterface::class);
        } catch (Exception $ex) {
            throw $e; // throw the original exception
        }
 
        $logger->error(
            $e->getMessage(),
            array_merge($this->context(), ['exception' => $e]
        ));
    }
 
    /**
     * Determine if the exception should be reported.
     *
     * @param  \Exception  $e
     * @return bool
     */
    public function shouldReport(Exception $e)
    {
        return ! $this->shouldntReport($e);
    }
 
    /**
     * Determine if the exception is in the "do not report" list.
     *
     * @param  \Exception  $e
     * @return bool
     */
Arguments
  1. "file_put_contents(): write of 212 bytes failed with errno=122 Disk quota exceeded"
    
  2. array:1 [
      "exception" => ErrorException {
        #message: "file_put_contents(): write of 212 bytes failed with errno=122 Disk quota exceeded"
        #code: 0
        #file: "/home2/kimtours/theapp/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php"
        #line: 122
        #severity: E_NOTICE
      }
    ]
    
/home2/kimtours/theapp/app/Exceptions/Handler.php
     * A list of the inputs that are never flashed for validation exceptions.
     *
     * @var array
     */
    protected $dontFlash = [
        'password',
        'password_confirmation',
    ];
 
    /**
     * Report or log an exception.
     *
     * This is a great spot to send exceptions to Sentry, Bugsnag, etc.
     *
     * @param  \Exception  $exception
     * @return void
     */
    public function report(Exception $exception)
    {
        parent::report($exception);
    }
 
    /**
     * Render an exception into an HTTP response.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Exception  $exception
     * @return \Illuminate\Http\Response
     */
    public function render($request, Exception $exception)
    {
        return parent::render($request, $exception);
    }
}
 
Arguments
  1. ErrorException {
      #message: "file_put_contents(): write of 212 bytes failed with errno=122 Disk quota exceeded"
      #code: 0
      #file: "/home2/kimtours/theapp/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php"
      #line: 122
      #severity: E_NOTICE
    }
    
/home2/kimtours/theapp/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/HandleExceptions.php
    }
 
    /**
     * Handle an uncaught exception from the application.
     *
     * Note: Most exceptions can be handled via the try / catch block in
     * the HTTP and Console kernels. But, fatal error exceptions must
     * be handled differently since they are not normal exceptions.
     *
     * @param  \Throwable  $e
     * @return void
     */
    public function handleException($e)
    {
        if (! $e instanceof Exception) {
            $e = new FatalThrowableError($e);
        }
 
        try {
            $this->getExceptionHandler()->report($e);
        } catch (Exception $e) {
            //
        }
 
        if ($this->app->runningInConsole()) {
            $this->renderForConsole($e);
        } else {
            $this->renderHttpResponse($e);
        }
    }
 
    /**
     * Render an exception to the console.
     *
     * @param  \Exception  $e
     * @return void
     */
    protected function renderForConsole(Exception $e)
    {
        $this->getExceptionHandler()->renderForConsole(new ConsoleOutput, $e);
Arguments
  1. ErrorException {
      #message: "file_put_contents(): write of 212 bytes failed with errno=122 Disk quota exceeded"
      #code: 0
      #file: "/home2/kimtours/theapp/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php"
      #line: 122
      #severity: E_NOTICE
    }
    
[internal]
Arguments
  1. ErrorException {
      #message: "file_put_contents(): write of 212 bytes failed with errno=122 Disk quota exceeded"
      #code: 0
      #file: "/home2/kimtours/theapp/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php"
      #line: 122
      #severity: E_NOTICE
    }
    

Environment & details:

empty
empty
empty
empty
empty
Key Value
LSPHP_ENABLE_USER_INI
"on"
PATH
"/usr/local/bin:/usr/bin:/bin"
TEMP
"/tmp"
TMP
"/tmp"
TMPDIR
"/tmp"
PWD
"/"
HTTP_ACCEPT
"*/*"
HTTP_ACCEPT_ENCODING
"gzip, br, zstd, deflate"
CONTENT_LENGTH
"0"
HTTP_HOST
"www.kim.tours"
HTTP_USER_AGENT
"Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"
HTTP_X_HTTPS
"1"
REDIRECT_UNIQUE_ID
"aEi2dNtYt9EZgqtpf6RAQAACZ2c"
REDIRECT_QS_ConnectionId
"1749595764020038431031425"
REDIRECT_SCRIPT_URL
"/tour/kenya-tanzania-and-zanzibar"
REDIRECT_SCRIPT_URI
"https://www.kim.tours/tour/kenya-tanzania-and-zanzibar"
REDIRECT_HTTPS
"on"
REDIRECT_SSL_TLS_SNI
"www.kim.tours"
REDIRECT_HTTP2
"on"
REDIRECT_H2PUSH
"off"
REDIRECT_H2_PUSH
"off"
REDIRECT_H2_PUSHED
""
REDIRECT_H2_PUSHED_ON
""
REDIRECT_H2_STREAM_ID
"1"
REDIRECT_H2_STREAM_TAG
"1031425-2620-1"
REDIRECT_STATUS
"200"
UNIQUE_ID
"aEi2dNtYt9EZgqtpf6RAQAACZ2c"
QS_ConnectionId
"1749595764020038431031425"
SCRIPT_URL
"/tour/kenya-tanzania-and-zanzibar"
SCRIPT_URI
"https://www.kim.tours/tour/kenya-tanzania-and-zanzibar"
HTTPS
"on"
SSL_TLS_SNI
"www.kim.tours"
HTTP2
"on"
H2PUSH
"off"
H2_PUSH
"off"
H2_PUSHED
""
H2_PUSHED_ON
""
H2_STREAM_ID
"1"
H2_STREAM_TAG
"1031425-2620-1"
SERVER_SIGNATURE
""
SERVER_SOFTWARE
"Apache"
SERVER_NAME
"www.kim.tours"
SERVER_ADDR
"192.185.92.29"
SERVER_PORT
"443"
REMOTE_ADDR
"216.73.216.162"
DOCUMENT_ROOT
"/home2/kimtours/public_html"
REQUEST_SCHEME
"https"
CONTEXT_PREFIX
""
CONTEXT_DOCUMENT_ROOT
"/home2/kimtours/public_html"
SERVER_ADMIN
"webmaster@kim.tours"
SCRIPT_FILENAME
"/home2/kimtours/public_html/index.php"
REMOTE_PORT
"37673"
REDIRECT_URL
"/tour/kenya-tanzania-and-zanzibar"
SERVER_PROTOCOL
"HTTP/2.0"
REQUEST_METHOD
"GET"
QUERY_STRING
""
REQUEST_URI
"/tour/kenya-tanzania-and-zanzibar"
SCRIPT_NAME
"/index.php"
PHP_SELF
"/index.php"
REQUEST_TIME_FLOAT
1749595764.0307
REQUEST_TIME
1749595764
argv
[]
argc
0
APP_NAME
"Kim'zebra Adventures & Safaris"
APP_ENV
"local"
APP_KEY
"base64:B3WF9t8UARMSYbPts9CiehrwZw8seRi6wtrqlUxZC6g="
APP_DEBUG
"true"
APP_LOG_LEVEL
"debug"
APP_URL
"http://localhost"
DB_CONNECTION
"mysql"
DB_HOST
"127.0.0.1"
DB_PORT
"3306"
DB_DATABASE
"kimtours_data"
DB_USERNAME
"kimtours_staff"
DB_PASSWORD
"123s_s321"
BROADCAST_DRIVER
"log"
CACHE_DRIVER
"file"
SESSION_DRIVER
"file"
QUEUE_DRIVER
"sync"
REDIS_HOST
"127.0.0.1"
REDIS_PASSWORD
"null"
REDIS_PORT
"6379"
MAIL_DRIVER
"smtp"
MAIL_HOST
"mail.kim.tours"
MAIL_PORT
"465"
MAIL_USERNAME
"noreply@kim.tours"
MAIL_PASSWORD
"7wWq1n06tnUz"
MAIL_ENCRYPTION
"ssl"
PUSHER_APP_ID
""
PUSHER_APP_KEY
""
PUSHER_APP_SECRET
""
Key Value
APP_NAME
"Kim'zebra Adventures & Safaris"
APP_ENV
"local"
APP_KEY
"base64:B3WF9t8UARMSYbPts9CiehrwZw8seRi6wtrqlUxZC6g="
APP_DEBUG
"true"
APP_LOG_LEVEL
"debug"
APP_URL
"http://localhost"
DB_CONNECTION
"mysql"
DB_HOST
"127.0.0.1"
DB_PORT
"3306"
DB_DATABASE
"kimtours_data"
DB_USERNAME
"kimtours_staff"
DB_PASSWORD
"123s_s321"
BROADCAST_DRIVER
"log"
CACHE_DRIVER
"file"
SESSION_DRIVER
"file"
QUEUE_DRIVER
"sync"
REDIS_HOST
"127.0.0.1"
REDIS_PASSWORD
"null"
REDIS_PORT
"6379"
MAIL_DRIVER
"smtp"
MAIL_HOST
"mail.kim.tours"
MAIL_PORT
"465"
MAIL_USERNAME
"noreply@kim.tours"
MAIL_PASSWORD
"7wWq1n06tnUz"
MAIL_ENCRYPTION
"ssl"
PUSHER_APP_ID
""
PUSHER_APP_KEY
""
PUSHER_APP_SECRET
""
0. Whoops\Handler\PrettyPageHandler