Laravel Logging to Slack Workbook causes "Curl error (code 3): <url> malformed"

10,005

env() will return null if the string is not defined in .env so you're just setting url to null. Perhaps you meant to do something like

'url' => 'https://hooks.slack.com/services/TC3S00...'

Or

'url' => env(SLACK_URL, 'https://hooks.slack.com/services/TC3S00...')

(and have an entry in .env for SLACK_URL)

Share:
10,005

Related videos on Youtube

sntrcode
Author by

sntrcode

Just built myself a desk to stand on a desk to work in standing position.

Updated on June 04, 2022

Comments

  • sntrcode
    sntrcode almost 2 years

    I just set up a webhook in Slack to send logging to from my Laravel app.

    When the log line executes, this error pops up:

    RuntimeException
    Curl error (code 3): <url> malformed
    

    Source:

    vendor\monolog\monolog\src\Monolog\Handler\Curl\Util.php
    
    {
        while ($retries--) {
            if (curl_exec($ch) === false) {
                $curlErrno = curl_errno($ch);
    
                if (false === in_array($curlErrno, self::$retriableErrorCodes, true) || !$retries) {
                    $curlError = curl_error($ch);
    
                    if ($closeAfterDone) {
                        curl_close($ch);
                    }
    
                    throw new \RuntimeException(sprintf('Curl error (code %s): %s', $curlErrno, $curlError));
                }
    
                continue;
            }
    
            if ($closeAfterDone) {
                curl_close($ch);
            }
            break;
        }
    }
    

    The log line:

    Log::channel('slack')->info('hi');
    

    Configuration is like this:

        'slack' => [
            'driver' => 'slack',
            'url' => env('https://hooks.slack.com/services/TC3S00PFC/BC411TH4M/YXAu...'),
            'username' => 'app',
            'emoji' => ':boom:',
            'level' => 'info',
        ],
    

    I tried with a different webhook url, username. Curl is activated in php. No other clue...