Gorilla Tracking Tips and Guidelines

Gorilla Tracking Tips and Guidelines

Mountain Gorilla Tracking Tips and Guidelines

 

Practical advice to make your Gorilla Safari more enjoyable

For most travelers, trekking the Mountain Gorillas ranks among one of the absolute highlights of a trip to Uganda, and the spine-tingling feeling that you get being so near to one of our closest relatives is hard to describe. The Mountain Gorilla Tracking Tips and Guidelines written here will help you plan your gorilla trekking safari with less to worry about.

Mountain Gorillas are one of the world’s most endangered apes and it is estimated that there are only 880 (November 2012) left throughout the world. Almost half of these can be found in Uganda, as well as populations in Rwanda and the Democratic Republic of Congo.

According to the Ugandan Wildlife Authority, there is a 95% chance that you will come across mountain gorillas on your trek. Your journey will be an exhilarating one: cutting your way through dense jungle, thick bamboo, past local homesteads, and up forested hills… Gorilla tracking spans vary and can be anything from as little as 30 minutes to 7 hours! Your efforts will be rewarded with your first sighting of the Gorillas, as these gentle giants shyly approach you and you come face-to-face with one of nature’s greatest animals.

So let’s get started with the mountain gorilla tracking tips and guidelines:-

 

Before you set off on your Mountain Gorilla Tracking Safari

  • Be in reasonable shape and have no communicable diseases or cold or flu. If you need to cough, sneeze, blow your nose, move your head away from the gorilla in order to keep the risk of infection to a minimum.
  • Be at least 15 years of age.
  • Always wash your hands before you head out to the mountain gorillas.
  • Wear appropriate clothing since it is often cool there, a jacket might be helpful, a light backpack where you can put your packed lunch, and proper boots to support your ankles.

 

The Mountain Gorilla Tracking Experience

  • A maximum number of 8 visitors may visit a group (family) of habituated mountain gorillas in a day. This minimizes behavioral disturbances to the mountain gorillas and the risk of their exposure to human-borne diseases.
  • Always wash your hands before you head out to the mountain gorillas.
  • Pack it in and pack it out. Do not leave rubbish in the park. Whatever you bring into the forest should be carried back with you since it would spoil it for the next visitors.
  • You will be taken to where the guides left the gorillas the day before. From there you will follow the mountain gorillas’ trail to find them. Look out for the Gorilla’s nesting sites along the way.
  • When you approach the Gorillas, the guides will inform you when to get your cameras ready.
  • Please always keep your voices low. This will ensure that you will be able to observe the beautiful birds and other wildlife in the forest.

 

In the Presence of Mountain Gorillas – Your time with the Gorillas

  • Keep a minimum distance of 5-7 meters (15-21 feet) from the Gorillas. (This reduces the risk of transmitting diseases between humans and Gorillas.
  • Keep your voices pretty low at all times but it is okay to ask the guide questions.
  • Do not partake of food or drinks in the presence of the Mountain Gorillas.

Sometimes the Mountain Gorillas charge. Follow the guide’s example by crouching down slowly, and do not look the Gorillas in the eyes. Wait for the gorilla to pass you by and do not attempt to run away (this will increase the risk of attack).

  • Flash photography is not allowed, when taking pictures, move slowly and carefully. Do not make lots of movements when taking pictures-keep it calm.
  • Do not touch the Mountain Gorillas, remember they are wild animals.
  • The maximum time visitors are allowed to spend with the Gorillas is one hour; however, if the Gorillas become agitated or nervous, the guide will end the visit early.

After the visit, keep your voices low until you are at least 200 meters away from the Gorillas.

Health Guidelines

  • Mountain Gorillas are closely related to us they are susceptible to diseases carried by humans.
  • If you are not well, let it be known and remove yourself from the gorilla tracking team.
  • If you need to cough, sneeze, blow your nose, move your head away from the gorilla in order to keep the risk of infection to a minimum.
  • No smoking, eating of food, or drinking of beverages is allowed in the presence of the Mountain Gorillas.

 

Acquiring Uganda Mountain Gorilla Tracking Permits

The Mountain Gorillas in Uganda is one of the main attractions to visitors to Uganda. Mountain Gorilla Trekking permits are a much sought-after commodity and with a small number of people allowed to track each day, it takes a lot of planning to ensure an opportunity for the tracking of Mountain Gorillas in Uganda. Since the situation in the Democratic Republic of Congo is unstable presently, there is more pressure on Mountain Gorilla Tracking Permits in Uganda. Fortunately, we also have Rwanda which is just a hop across the border from Bwindi Impenetrable Forest and at times the Mgahinga Gorilla Park area. We can help you acquire an Uganda gorilla trekking permit even if you are coming from Rwanda – also arrange transportation.

Your best bet for obtaining a Mountain Gorilla Tracking Permit is to book a Mountain Gorilla Tracking Safari with us like a 3-day Bwindi gorilla trekking safari or as part of a longer Uganda safari taking you to other Uganda Safari Parks such as the Chimpanzees in Kibale Forest, the wildlife, birds, and chimpanzees at Queen Elizabeth National Park.

The price of Uganda Gorilla Trekking Permit cost USD $700 per person. You must be at least 15 years of age. Permits can be obtained for two different parks, Bwindi Impenetrable Forest National Park and Mgahinga Gorilla Park. However, the situation in Mgahinga is a bit more fluid, since the habituated Mountain Gorilla group there moves back and forth to Rwanda and the Democratic Republic of Congo.

Since Saso ‘Gorilla Trips’ Uganda Safaris is a licensed tour operator and registered as such in Uganda, we have a better opportunity to meet your schedule and if you book a Mountain Gorilla Tracking Safari with us, we are flexible to adjust the date of the gorilla tracking to fit into the overall safari itinerary we have for you.

Most people going on a Mountain Gorilla Tracking Safari actually see them since your Guide is extremely knowledgeable about the area where your habituated group is located in. Upon completion of your successful Tracking Safari, you will be issued a certificate by Uganda Wildlife Authority.

The USD $600 for a gorilla trekking permit may seem steep but it’s worth it and upon completion, there is no mention of the money, – only the satisfaction of having seen these magnificent and rare animals.

 

When to Visit The Mountain Gorillas in Uganda

Best time to go:June to August and December to February (All parks)
High Season:June to September (It’s rarely crowded, but you’ll need to book your gorilla permits long in advance)
Low Season:March, April, May, October, and November (Some lodges and camps in high rainfall areas close down; roads and forest trails can be in poor condition)
Best Weather:June-July and January-February (Little rainfall)
Worst Weather:March, April, and May (Peak of wet season)

 

Gorilla Trekking Tips

Gorilla Trekking Tips to help you plan your gorilla safari to Uganda or Rwanda.

For most travelers, trekking the Gorillas ranks among one of the absolute highlights of a trip to Uganda, and the awesome feeling that you get being before these creatures is indescribable. Gorilla tracking is a thrilling experience as the guide leads you through the gorilla’s world, explaining aspects of their ecology and behavior along the way. Tracking times do vary and can be anything from as little as 30 minutes to 7 hours! But your efforts will be rewarded when you finally come face-to-face with one of nature’s greatest animals.

Information on Mountain Gorillas shows that the endangered Mountain Gorillas won’t be found in any zoo in the world (they do not survive in captivity and there are no surviving mountain gorillas in zoos), you can only find them and see them in Africa, in the countries of Uganda, Rwanda, and the Democratic Republic of Congo. According to census data released by the recent census by the Uganda Minister of Tourism Wildlife and Antiquities -,  there are only about 880 Mountain Gorillas left in the world and over 400 of those live in Bwindi Impenetrable Forest alone. Others can be found in Mgahinga Gorilla National Park in Uganda, Volcanoes National Park in Rwanda, and Virunga National Park in the Democratic Republic of Congo.

Let us visit some of the gorilla trekking tips or guidelines to make your trip a success.

The Way to the Gorillas

  • A maximum number of 8 visitors may visit a group (family) of habituated Gorillas in a day. This minimizes behavioral disturbances to the Gorillas and the risk of their exposure to human-borne diseases.
  • Always wash your hands before you head out to the Gorillas.
  • Do not leave rubbish in the park. Whatever you bring into the forest should be carried back with you.
  • You will be taken to where the guides left the gorillas the day before. From there you will follow the Gorillas’ trail to find them. Look out for the gorilla’s nesting sites along the way.
  • When you approach the Gorillas, the guides will inform you when to get your cameras ready.
  • Please always keep your voices low. This will ensure that you will be able to observe the beautiful birds and other wildlife in the forest.

When You Are With the Gorillas

  • Keep a minimum distance of 7 meters (21 feet) from the Gorillas. (This reduces the risk of transmitting diseases between humans and Gorillas.
  • Keep your voices low at all times. However, it is okay to ask the guide questions.
  • Do not eat or drink while you are near the Gorillas.
  • Sometimes the Gorillas charge. Follow the guide’s example by crouching down slowly, and do not look at the Gorillas in the eyes. Wait for the gorilla to pass you by and do not attempt to run away (this will increase the risk of attack).
  • Flash photography is not permitted, when taking pictures, move slowly and carefully.
  • Do not touch the Gorillas. They are wild animals.
  • The maximum time visitors are allowed to spend with the Gorillas is one hour; however, if the Gorillas become agitated or nervous, the guide will end the visit early.
  • After the visit, keep your voices low until you are at least 200 meters away from the Gorillas.

 

General Health Rules

Gorillas are very susceptible to human diseases. The following guidelines are to ensure that you minimize the risk your visit might pose to them.

  • Respect the limit imposed on the time that visitors are allowed with the Gorillas each day. This minimizes the risk of disease transmission and stress to the group.
  • If you are feeling ill, or have a contagious disease when you are already at the park, please volunteer to stay behind. An alternative visit will be arranged for you, or you will be refunded (as per the gorilla reservation guidelines).
  • If you feel the urge to cough or sneeze when you are near the Gorillas, please turn your head away and cover your nose and mouth in order to minimize the spread of bacteria or germs.
  • Always stay 7 meters (21 feet) away from the Gorillas. The further back you are, the more relaxed the group will be.
  • Do not leave any rubbish e.g. food wrappers in the park. Such items can harbor diseases or other contaminants.
  • If you need to go to the toilet while in the forest, please ask the guide to dig you a hole. Fill it out when you have finished.

What to Bring

Given that Gorilla tracking involves a lot of walking on rough, mountainous terrain, a tracker is advised to:

  • Bring shoes with good traction, suitable for steep muddy slopes.
  • Carry rain gear, sunscreen, and a hat, as the weather is unpredictable.
  • Carry enough water and food.
  • Carry binoculars
  • Carry a good camera that can take photographs of black animals in dim light without a flash. A mono pod can also be very helpful.
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 21:36:31] local.ERROR: file_put_contents(): write of 196 bytes failed with errno=122 Disk quota exceeded {"exception":"[object] (ErrorException(code: 0): file_put_contents(): write of 196 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('vgPxJPaaV7I1P9D...', '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 196 bytes failed with errno=122 Disk quota exceeded"
      "context" => array:1 [
        "exception" => ErrorException {
          #message: "file_put_contents(): write of 196 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 @1780695391 {
        date: 2026-06-05 21:36:31.650539 UTC (+00:00)
      }
      "extra" => []
      "formatted" => """
        [2026-06-05 21:36:31] local.ERROR: file_put_contents(): write of 196 bytes failed with errno=122 Disk quota exceeded {"exception":"[object] (ErrorException(code: 0): file_put_contents(): write of 196 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('vgPxJPaaV7I1P9D...', '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 196 bytes failed with errno=122 Disk quota exceeded"
      "context" => array:1 [
        "exception" => ErrorException {
          #message: "file_put_contents(): write of 196 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 @1780695391 {
        date: 2026-06-05 21:36:31.650539 UTC (+00:00)
      }
      "extra" => []
      "formatted" => """
        [2026-06-05 21:36:31] local.ERROR: file_put_contents(): write of 196 bytes failed with errno=122 Disk quota exceeded {"exception":"[object] (ErrorException(code: 0): file_put_contents(): write of 196 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('vgPxJPaaV7I1P9D...', '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 196 bytes failed with errno=122 Disk quota exceeded"
      "context" => array:1 [
        "exception" => ErrorException {
          #message: "file_put_contents(): write of 196 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 @1780695391 {
        date: 2026-06-05 21:36:31.650539 UTC (+00:00)
      }
      "extra" => []
      "formatted" => """
        [2026-06-05 21:36:31] local.ERROR: file_put_contents(): write of 196 bytes failed with errno=122 Disk quota exceeded {"exception":"[object] (ErrorException(code: 0): file_put_contents(): write of 196 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('vgPxJPaaV7I1P9D...', '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 196 bytes failed with errno=122 Disk quota exceeded"
    
  3. array:1 [
      "exception" => ErrorException {
        #message: "file_put_contents(): write of 196 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 196 bytes failed with errno=122 Disk quota exceeded"
    
  2. array:1 [
      "exception" => ErrorException {
        #message: "file_put_contents(): write of 196 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 196 bytes failed with errno=122 Disk quota exceeded"
    
  3. array:1 [
      "exception" => ErrorException {
        #message: "file_put_contents(): write of 196 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 196 bytes failed with errno=122 Disk quota exceeded"
    
  2. array:1 [
      "exception" => ErrorException {
        #message: "file_put_contents(): write of 196 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 196 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 196 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 196 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
"eyJpdiI6ImFNODBXQXZLdHhkN1JrRmdRWnJwbFE9PSIsInZhbHVlIjoiOVlkNVdGeXc3cjZhcHh5M20xSjVBbXBZNE9QejVwdFhuNU9XN2I4WStJbFdhNkNyMnhsV3h5N3E3N1VaTEQ1WSIsIm1hYyI6ImE5NzMyMDMyOGU1ODdiNzg1YzEzM2ZkNGUwOTY1NmQzNzBiZDYzZjhhYjNhYmM3NDkxNTdmZWE3NGM5NTg0NjIifQ=="
kimzebra_adventures_safaris_session
"eyJpdiI6Im5XZFZxTk1mazJJNEVOZXhEczJVT1E9PSIsInZhbHVlIjoicWgzbWpsSGU3TGZSaVRcL1VyR3U0NUd5N0NcL2VMNllLYlJWaHZxbTNxcitxeldKaDlpYjJUbG1iSll3RmlkSjAyIiwibWFjIjoiYTdmODkwMDUyOGYxMWJkMDNjMDJkMjk4ZWMzZmZhMmIzZTc3MTY5NjZiYWI2ZjQ4ZTNhYTUwOGZhZDc1NjkwZCJ9"
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=eyJpdiI6ImFNODBXQXZLdHhkN1JrRmdRWnJwbFE9PSIsInZhbHVlIjoiOVlkNVdGeXc3cjZhcHh5M20xSjVBbXBZNE9QejVwdFhuNU9XN2I4WStJbFdhNkNyMnhsV3h5N3E3N1VaTEQ1WSIsIm1hYyI6ImE5NzMyMDMyOGU1ODdiNzg1YzEzM2ZkNGUwOTY1NmQzNzBiZDYzZjhhYjNhYmM3NDkxNTdmZWE3NGM5NTg0NjIifQ%3D%3D; kimzebra_adventures_safaris_session=eyJpdiI6Im5XZFZxTk1mazJJNEVOZXhEczJVT1E9PSIsInZhbHVlIjoicWgzbWpsSGU3TGZSaVRcL1VyR3U0NUd5N0NcL2VMNllLYlJWaHZxbTNxcitxeldKaDlpYjJUbG1iSll3RmlkSjAyIiwibWFjIjoiYTdmODkwMDUyOGYxMWJkMDNjMDJkMjk4ZWMzZmZhMmIzZTc3MTY5NjZiYWI2ZjQ4ZTNhYTUwOGZhZDc1NjkwZCJ9"
HTTP_HOST
"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
"aiNBX1K2EYjliAgMiMvuDwAAY0Q"
REDIRECT_QS_ConnectionId
"178069539157738712828939"
REDIRECT_SCRIPT_URL
"/gorilla-tracking-tip"
REDIRECT_SCRIPT_URI
"https://kim.tours/gorilla-tracking-tip"
REDIRECT_HTTPS
"on"
REDIRECT_SSL_TLS_SNI
"kim.tours"
REDIRECT_HTTP2
"on"
REDIRECT_H2PUSH
"off"
REDIRECT_H2_PUSH
"off"
REDIRECT_H2_PUSHED
""
REDIRECT_H2_PUSHED_ON
""
REDIRECT_H2_STREAM_ID
"29"
REDIRECT_H2_STREAM_TAG
"828939-1243-29"
REDIRECT_STATUS
"200"
UNIQUE_ID
"aiNBX1K2EYjliAgMiMvuDwAAY0Q"
QS_ConnectionId
"178069539157738712828939"
SCRIPT_URL
"/gorilla-tracking-tip"
SCRIPT_URI
"https://kim.tours/gorilla-tracking-tip"
HTTPS
"on"
SSL_TLS_SNI
"kim.tours"
HTTP2
"on"
H2PUSH
"off"
H2_PUSH
"off"
H2_PUSHED
""
H2_PUSHED_ON
""
H2_STREAM_ID
"29"
H2_STREAM_TAG
"828939-1243-29"
SERVER_SIGNATURE
""
SERVER_SOFTWARE
"Apache"
SERVER_NAME
"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
"12265"
REDIRECT_URL
"/gorilla-tracking-tip"
SERVER_PROTOCOL
"HTTP/2.0"
REQUEST_METHOD
"GET"
QUERY_STRING
""
REQUEST_URI
"/gorilla-tracking-tip"
SCRIPT_NAME
"/index.php"
PHP_SELF
"/index.php"
REQUEST_TIME_FLOAT
1780695391.5818
REQUEST_TIME
1780695391
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