Hot-Air Balloon Rides

Hot-Air Balloon Rides


A Hot-Air Balloon Safari over the Serengeti is the quietest, most breathtaking hour youโ€™ll have in Africa. Kimโ€™zebra partners with licensed operators to lift you above the plains at sunrise, when light is gold and wildlife is most active. No engine noise, no dust โ€” just you, the wind, and the savanna unfolding 500 to 1,000 feet below.

๐“๐ก๐ž ๐„๐ฑ๐ฉ๐ž๐ซ๐ข๐ž๐ง๐œ๐ž
Pickup is before dawn, around 5:00 AM, from your central Serengeti lodge or camp. Coffee and a safety briefing happen at the launch site while the balloon inflates in the dark โ€” a surreal show itself. Lift-off is at first light. For 60 minutes you drift silently with the wind. Routes change daily, so every flight is unique.

From the basket youโ€™ll see the scale of the Serengeti: river veins, acacia dots, and herds moving like shadows. Spot elephant families, giraffe towers, buffalo herds, and hippo pods from above. During migration months, watch columns of wildebeest and zebra flowing across the plains. Lion, cheetah, and hyena are common sightings, and youโ€™ll understand hunting strategy from the air. The pilot controls altitude to dip low over waterholes or climb for panoramas stretching to the horizon.

๐‹๐š๐ง๐๐ข๐ง๐  & ๐๐ฎ๐ฌ๐ก ๐๐ซ๐ž๐š๐ค๐Ÿ๐š๐ฌ๐ญ
Touchdown is a gentle team effort in open grassland. A champagne toast celebrates your flight โ€” a tradition dating to the first balloonists. Then a full โ€œOut of Africaโ€ bush breakfast is served under an acacia tree: eggs to order, tropical fruit, pastries, Tanzanian coffee, and sparkling wine. Tables, chairs, and linens appear in minutes.

๐–๐ก๐ž๐ซ๐ž & ๐–๐ก๐ž๐ง
Daily flights run year-round from Central Seronera. Seasonal launches operate in Western Serengeti Juneโ€“July and Northern Serengeti/Kogatende Julyโ€“October to follow the migration. Weather dependent โ€” high winds or rain cancel for safety and you rebook or refund.

๐–๐ก๐š๐ญโ€™๐ฌ ๐ˆ๐ง๐œ๐ฅ๐ฎ๐๐ž๐
Return lodge transfers, park balloon fee, 60-minute flight, champagne toast, bush breakfast, and a flight certificate. Minimum age is 7 years. Not suitable for pregnant travelers or those with serious back issues. Maximum weight limits apply per passenger.

๐–๐ก๐ฒ ๐€๐๐ ๐ˆ๐ญ
Youโ€™ve tracked animals at eye level. Now see their world. Itโ€™s the ultimate contrast to game drives and the easiest way to grasp the Serengetiโ€™s size. Flights book out 3โ€“6 months ahead, especially Julyโ€“September. Pair with a migration safari for a trip youโ€™ll never forget.

๐“๐ข๐ฆ๐ข๐ง๐  & ๐ƒ๐ฎ๐ซ๐š๐ญ๐ข๐จ๐ง
โ€ข ๐–๐š๐ค๐ž-๐ฎ๐ฉ: 4:30โ€“5:00 AM depending on lodge location and season. Sunrise shifts through the year.  
โ€ข ๐“๐ซ๐š๐ง๐ฌ๐Ÿ๐ž๐ซ: 30โ€“60 min to the launch site. Roads are dark and bumpy โ€” part of the adventure.  
โ€ข ๐ˆ๐ง๐Ÿ๐ฅ๐š๐ญ๐ข๐จ๐ง: 20โ€“30 min. You can watch or stay in the vehicle with coffee. The roar of burners in the dark is unreal.  
โ€ข ๐…๐ฅ๐ข๐ ๐ก๐ญ ๐ญ๐ข๐ฆ๐ž: 60 minutes airborne, give or take 10 min based on wind and landing options.  
โ€ข ๐๐ซ๐ž๐š๐ค๐Ÿ๐š๐ฌ๐ญ: 45โ€“60 min in the bush.  
โ€ข ๐‘๐ž๐ญ๐ฎ๐ซ๐ง ๐ญ๐จ ๐ฅ๐จ๐๐ ๐ž: 9:30โ€“10:30 AM. You still have a full game drive day ahead.

๐๐š๐ฅ๐ฅ๐จ๐จ๐ง & ๐‚๐š๐ฉ๐š๐œ๐ข๐ญ๐ฒ
Baskets carry 8, 12, or 16 guests plus the pilot. Compartments hold 2โ€“4 people each with padded sides and footholds for landing. You stand the entire flight. Baskets have no seats. Thereโ€™s a safety briefing on the โ€œbrace positionโ€ for landing โ€” knees bent, hold ropes, back to direction of travel. Most landings are gentle; some have a slight tip and drag.

๐๐ž๐ฌ๐ญ ๐‹๐จ๐œ๐š๐ญ๐ข๐จ๐ง๐ฌ ๐›๐ฒ ๐Œ๐จ๐ง๐ญ๐ก
โ€ข ๐—–๐—ฒ๐—ป๐˜๐—ฟ๐—ฎ๐—น ๐—ฆ๐—ฒ๐—ฟ๐—ผ๐—ป๐—ฒ๐—ฟ๐—ฎ: Year-round. Great resident game, rivers, kopjes. Guaranteed flights.  
โ€ข ๐—ช๐—ฒ๐˜€๐˜๐—ฒ๐—ฟ๐—ป ๐—ฆ๐—ฒ๐—ฟ๐—ฒ๐—ป๐—ด๐—ฒ๐˜๐—ถ/๐—š๐—ฟ๐˜‚๐—บ๐—ฒ๐˜๐—ถ: Juneโ€“July. Follows early migration, riverine forest, fewer balloons.  
โ€ข ๐—ก๐—ผ๐—ฟ๐˜๐—ต๐—ฒ๐—ฟ๐—ป ๐—ฆ๐—ฒ๐—ฟ๐—ฒ๐—ป๐—ด๐—ฒ๐˜๐—ถ/๐—ž๐—ผ๐—ด๐—ฎ๐˜๐—ฒ๐—ป๐—ฑ๐—ฒ: Julyโ€“October. Migration herds, Mara River, rolling hills. Busiest and most dramatic. Book earliest.  
โ€ข ๐—ก๐—ฑ๐˜‚๐˜๐˜‚/๐—ฆ๐—ผ๐˜‚๐˜๐—ต๐—ฒ๐—ฟ๐—ป: Decemberโ€“March. Calving plains, short grass, open views, predators. Seasonal operation.

๐–๐ก๐š๐ญ ๐˜๐จ๐ฎโ€™๐ฅ๐ฅ ๐’๐ž๐ž  
Altitude varies 50โ€“1,500 ft. Low passes skim treetops and follow rivers. High climbs reveal the curve of the earth and migration lines stretching miles. Youโ€™ll spot trails, abandoned kills, and animal interactions invisible from a vehicle. No guarantee of species, but elephant, buffalo, giraffe, hippo, and crocs are common. Big cats are a bonus. Sunrise colors + shadows make photography incredible โ€” bring a zoom lens.

๐’๐š๐Ÿ๐ž๐ญ๐ฒ & ๐‘๐ž๐ฌ๐ญ๐ซ๐ข๐œ๐ญ๐ข๐จ๐ง๐ฌ  
Licensed by Tanzanian Civil Aviation Authority. Pilots have 1,000+ hours. Balloons are inspected daily. Not allowed: pregnant guests, kids under 7, recent surgery, severe mobility issues. Max weight โˆผ120 kg per person; weigh-in at check-in. Mobility: you must climb into the basket unassisted using footholds. Flights cancel for wind >15 knots, rain, or poor visibility. Safety first, always.

๐–๐ก๐š๐ญ ๐ญ๐จ ๐–๐ž๐š๐ซ & ๐๐ซ๐ข๐ง๐   
โ€ข Layers: Itโ€™s cold at 5 AM, warm after sunrise.  
โ€ข Closed shoes: Landing can be in wet grass.  
โ€ข Hat & sunglasses: Sun glare off the balloon is strong.  
โ€ข Camera/phone + extra battery. No drones.  
โ€ข No large bags โ€” small camera bag only.

๐‚๐จ๐ฌ๐ญ & ๐๐จ๐จ๐ค๐ข๐ง๐  
$550โ€“$600 per person including fees, transfers, flight, champagne, and breakfast. Children 7โ€“12 usually pay full price due to space. Kimโ€™zebra pre-books your slot when you confirm your safari dates. Balloon space is limited and sells out 4โ€“6 months ahead for Julyโ€“Oct. We confirm your flight 24 hours prior based on weather. If canceled, youโ€™re refunded or rescheduled next day if available.

๐–๐ก๐ฒ ๐ˆ๐ญโ€™๐ฌ ๐–๐จ๐ซ๐ญ๐ก ๐ˆ๐ญ  
You see the Serengeti as eagles do. The silence, the scale, and the champagne breakfast in the middle of nowhere make it the most romantic and reflective hour of your safari.

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 @10
      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. """
    [2026-06-05 20:03:00] local.ERROR: file_put_contents(): write of 215 bytes failed with errno=122 Disk quota exceeded {"exception":"[object] (ErrorException(code: 0): file_put_contents(): write of 215 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('8WriuJmmJFBSKLi...', '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 @10
      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 215 bytes failed with errno=122 Disk quota exceeded"
      "context" => array:1 [
        "exception" => ErrorException {
          #message: "file_put_contents(): write of 215 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 @1780689780 {
        date: 2026-06-05 20:03:00.733963 UTC (+00:00)
      }
      "extra" => []
      "formatted" => """
        [2026-06-05 20:03:00] local.ERROR: file_put_contents(): write of 215 bytes failed with errno=122 Disk quota exceeded {"exception":"[object] (ErrorException(code: 0): file_put_contents(): write of 215 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('8WriuJmmJFBSKLi...', '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 215 bytes failed with errno=122 Disk quota exceeded"
      "context" => array:1 [
        "exception" => ErrorException {
          #message: "file_put_contents(): write of 215 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 @1780689780 {
        date: 2026-06-05 20:03:00.733963 UTC (+00:00)
      }
      "extra" => []
      "formatted" => """
        [2026-06-05 20:03:00] local.ERROR: file_put_contents(): write of 215 bytes failed with errno=122 Disk quota exceeded {"exception":"[object] (ErrorException(code: 0): file_put_contents(): write of 215 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('8WriuJmmJFBSKLi...', '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 215 bytes failed with errno=122 Disk quota exceeded"
      "context" => array:1 [
        "exception" => ErrorException {
          #message: "file_put_contents(): write of 215 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 @1780689780 {
        date: 2026-06-05 20:03:00.733963 UTC (+00:00)
      }
      "extra" => []
      "formatted" => """
        [2026-06-05 20:03:00] local.ERROR: file_put_contents(): write of 215 bytes failed with errno=122 Disk quota exceeded {"exception":"[object] (ErrorException(code: 0): file_put_contents(): write of 215 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('8WriuJmmJFBSKLi...', '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 215 bytes failed with errno=122 Disk quota exceeded"
    
  3. array:1 [
      "exception" => ErrorException {
        #message: "file_put_contents(): write of 215 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 215 bytes failed with errno=122 Disk quota exceeded"
    
  2. array:1 [
      "exception" => ErrorException {
        #message: "file_put_contents(): write of 215 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 215 bytes failed with errno=122 Disk quota exceeded"
    
  3. array:1 [
      "exception" => ErrorException {
        #message: "file_put_contents(): write of 215 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 215 bytes failed with errno=122 Disk quota exceeded"
    
  2. array:1 [
      "exception" => ErrorException {
        #message: "file_put_contents(): write of 215 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 215 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 215 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 215 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
Key Value
XSRF-TOKEN
"eyJpdiI6IkF3VGJpVWdMQUliZDc1XC9aVEdnTHl3PT0iLCJ2YWx1ZSI6IjZRcVFudlNqNGR2T0RqczdaQ0FGemEwSXFMNHVoODhYWlZXcldFanBGQ01DaGtTQ1ZYWE5PZ1wvY0NHdDgwd1wvSCIsIm1hYyI6IjE2Y2IxZGIxMjNlYjBkZGVjMmE5NzQyZjljY2MyMzA5MTU2ZjMwMDFlYTcyMDg3ZGM3NmMxNTU4MzVkYzJlMjQifQ=="
kimzebra_adventures_safaris_session
"eyJpdiI6IlwvaXpiUlhDbkZaM3hXSEwxYkZ6OW5nPT0iLCJ2YWx1ZSI6IjVaTTQ0Yjl6OEhsY1RRWlhsd0JBY1o5T0xwUUtSTURkazduM1FoXC9UajJublRkc2pmZDRlRzFhbktNWDJCbmVvIiwibWFjIjoiNjU4MjI1OTRiMjE1ZmVjOTdiMTI1MDg3ZWYxNjNlNWUzM2U2M2Q5Zjc2ZWI2Y2Q0YTc2ZjY3MWRlZDViOTYwOSJ9"
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_COOKIE
"XSRF-TOKEN=eyJpdiI6IkF3VGJpVWdMQUliZDc1XC9aVEdnTHl3PT0iLCJ2YWx1ZSI6IjZRcVFudlNqNGR2T0RqczdaQ0FGemEwSXFMNHVoODhYWlZXcldFanBGQ01DaGtTQ1ZYWE5PZ1wvY0NHdDgwd1wvSCIsIm1hYyI6IjE2Y2IxZGIxMjNlYjBkZGVjMmE5NzQyZjljY2MyMzA5MTU2ZjMwMDFlYTcyMDg3ZGM3NmMxNTU4MzVkYzJlMjQifQ%3D%3D; kimzebra_adventures_safaris_session=eyJpdiI6IlwvaXpiUlhDbkZaM3hXSEwxYkZ6OW5nPT0iLCJ2YWx1ZSI6IjVaTTQ0Yjl6OEhsY1RRWlhsd0JBY1o5T0xwUUtSTURkazduM1FoXC9UajJublRkc2pmZDRlRzFhbktNWDJCbmVvIiwibWFjIjoiNjU4MjI1OTRiMjE1ZmVjOTdiMTI1MDg3ZWYxNjNlNWUzM2U2M2Q5Zjc2ZWI2Y2Q0YTc2ZjY3MWRlZDViOTYwOSJ9"
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
"aiMrdFFthdKD5I7OP9neHAAA90w"
REDIRECT_QS_ConnectionId
"178068978066269208433433"
REDIRECT_SCRIPT_URL
"/safaris-tours/hot-air-balloon-rides"
REDIRECT_SCRIPT_URI
"https://www.kim.tours/safaris-tours/hot-air-balloon-rides"
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
"5"
REDIRECT_H2_STREAM_TAG
"433433-519-5"
REDIRECT_STATUS
"200"
UNIQUE_ID
"aiMrdFFthdKD5I7OP9neHAAA90w"
QS_ConnectionId
"178068978066269208433433"
SCRIPT_URL
"/safaris-tours/hot-air-balloon-rides"
SCRIPT_URI
"https://www.kim.tours/safaris-tours/hot-air-balloon-rides"
HTTPS
"on"
SSL_TLS_SNI
"www.kim.tours"
HTTP2
"on"
H2PUSH
"off"
H2_PUSH
"off"
H2_PUSHED
""
H2_PUSHED_ON
""
H2_STREAM_ID
"5"
H2_STREAM_TAG
"433433-519-5"
SERVER_SIGNATURE
""
SERVER_SOFTWARE
"Apache"
SERVER_NAME
"www.kim.tours"
SERVER_ADDR
"10.37.141.148"
SERVER_PORT
"443"
REMOTE_ADDR
"216.73.216.213"
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
"51834"
REDIRECT_URL
"/safaris-tours/hot-air-balloon-rides"
SERVER_PROTOCOL
"HTTP/2.0"
REQUEST_METHOD
"GET"
QUERY_STRING
""
REQUEST_URI
"/safaris-tours/hot-air-balloon-rides"
SCRIPT_NAME
"/index.php"
PHP_SELF
"/index.php"
REQUEST_TIME_FLOAT
1780689780.6679
REQUEST_TIME
1780689780
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
LSPHP_ENABLE_USER_INI
"on"
PATH
"/usr/local/bin:/usr/bin:/bin"
TEMP
"/tmp"
TMP
"/tmp"
TMPDIR
"/tmp"
PWD
"/"
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