godbout / alfred-time

Start and stop tracking time with Toggl, Harvest, Everhour or Clockify through Alfred 4. ⏰️
MIT License
110 stars 8 forks source link

Continue a time results in Uncaught TypeError: Carbon\Carbon::setLastErrors() #53

Closed danstreeter closed 1 year ago

danstreeter commented 1 year ago

Whilst using Alfred Time 4.3.1 on OSX Monterey with PHP 8.2 - trying to continue a timer results in the following error:

[20:03:35.633] ERROR: Time[Script Filter] Code 255: PHP Fatal error:  Uncaught TypeError: Carbon\Carbon::setLastErrors(): Argument #1 ($lastErrors) must be of type array, bool given, called in /<workflow_dir>/vendor/nesbot/carbon/src/Carbon/Traits/Creator.php on line 98 and defined in /<workflow_dir>/vendor/nesbot/carbon/src/Carbon/Traits/Creator.php:928
Stack trace:
#0 /<workflow_dir>/vendor/nesbot/carbon/src/Carbon/Traits/Creator.php(98): Carbon\Carbon::setLastErrors(false)
#1 /<workflow_dir>/vendor/nesbot/carbon/src/Carbon/Traits/Creator.php(185): Carbon\Carbon->__construct('today', NULL)
#2 /<workflow_dir>/vendor/nesbot/carbon/src/Carbon/Traits/Creator.php(264): Carbon\Carbon::rawParse('today', NULL)
#3 /<workflow_dir>/src/Services/Clockify.php(152): Carbon\Carbon::today()
#4 /<workflow_dir>/src/Menus/ChooseTimer.php(29): Godbout\Alfred\Time\Services\Clockify->pastTimers()
#5 /<workflow_dir>/src/Menus/ChooseTimer.php(16): Godbout\Alfred\Time\Menus\ChooseTimer::getServicePastTimers(Object(Godbout\Alfred\Time\Services\Clockify))
#6 /<workflow_dir>/vendor/godbout/alfred-workflow-workflow/src/BaseWorkflow.php(30): Godbout\Alfred\Time\Menus\ChooseTimer::scriptFilter()
#7 /<workflow_dir>/src/app.php(14): Godbout\Alfred\Workflow\BaseWorkflow::currentMenu()
#8 {main}
  thrown in /<workflow_dir>/vendor/nesbot/carbon/src/Carbon/Traits/Creator.php on line 928
[20:03:35.635] Time[Script Filter] Fatal error: Uncaught TypeError: Carbon\Carbon::setLastErrors(): Argument #1 ($lastErrors) must be of type array, bool given, called in /<workflow_dir>/vendor/nesbot/carbon/src/Carbon/Traits/Creator.php on line 98 and defined in /<workflow_dir>/vendor/nesbot/carbon/src/Carbon/Traits/Creator.php:928
Stack trace:
#0 /<workflow_dir>/vendor/nesbot/carbon/src/Carbon/Traits/Creator.php(98): Carbon\Carbon::setLastErrors(false)
#1 /<workflow_dir>/vendor/nesbot/carbon/src/Carbon/Traits/Creator.php(185): Carbon\Carbon->__construct('today', NULL)
#2 /<workflow_dir>/vendor/nesbot/carbon/src/Carbon/Traits/Creator.php(264): Carbon\Carbon::rawParse('today', NULL)
#3 /<workflow_dir>/src/Services/Clockify.php(152): Carbon\Carbon::today()
#4 /<workflow_dir>/src/Menus/ChooseTimer.php(29): Godbout\Alfred\Time\Services\Clockify->pastTimers()
#5 /<workflow_dir>/src/Menus/ChooseTimer.php(16): Godbout\Alfred\Time\Menus\ChooseTimer::getServicePastTimers(Object(Godbout\Alfred\Time\Services\Clockify))
#6 /<workflow_dir>/vendor/godbout/alfred-workflow-workflow/src/BaseWorkflow.php(30): Godbout\Alfred\Time\Menus\ChooseTimer::scriptFilter()
#7 /<workflow_dir>/src/app.php(14): Godbout\Alfred\Workflow\BaseWorkflow::currentMenu()
#8 {main}
  thrown in /<workflow_dir>/vendor/nesbot/carbon/src/Carbon/Traits/Creator.php on line 928
[20:03:35.637] ERROR: Time[Script Filter] JSON error: JSON text did not start with array or object and option to allow fragments not set. around line 1, column 0. in JSON:
Fatal error: Uncaught TypeError: Carbon\Carbon::setLastErrors(): Argument #1 ($lastErrors) must be of type array, bool given, called in /<workflow_dir>/vendor/nesbot/carbon/src/Carbon/Traits/Creator.php on line 98 and defined in /<workflow_dir>/vendor/nesbot/carbon/src/Carbon/Traits/Creator.php:928
Stack trace:
#0 /<workflow_dir>/vendor/nesbot/carbon/src/Carbon/Traits/Creator.php(98): Carbon\Carbon::setLastErrors(false)
#1 /<workflow_dir>/vendor/nesbot/carbon/src/Carbon/Traits/Creator.php(185): Carbon\Carbon->__construct('today', NULL)
#2 /<workflow_dir>/vendor/nesbot/carbon/src/Carbon/Traits/Creator.php(264): Carbon\Carbon::rawParse('today', NULL)
#3 /<workflow_dir>/src/Services/Clockify.php(152): Carbon\Carbon::today()
#4 /<workflow_dir>/src/Menus/ChooseTimer.php(29): Godbout\Alfred\Time\Services\Clockify->pastTimers()
#5 /<workflow_dir>/src/Menus/ChooseTimer.php(16): Godbout\Alfred\Time\Menus\ChooseTimer::getServicePastTimers(Object(Godbout\Alfred\Time\Services\Clockify))
#6 /<workflow_dir>/vendor/godbout/alfred-workflow-workflow/src/BaseWorkflow.php(30): Godbout\Alfred\Time\Menus\ChooseTimer::scriptFilter()
#7 /<workflow_dir>/src/app.php(14): Godbout\Alfred\Workflow\BaseWorkflow::currentMenu()
#8 {main}
  thrown in /<workflow_dir>/vendor/nesbot/carbon/src/Carbon/Traits/Creator.php on line 928

Digging through this, the error is also found on this Stack Overflow Post which references upgrading Carbon to >2.62.1

The releases page of Carbon also states there is a fix for this: https://github.com/briannesbitt/Carbon/releases/tag/2.62.1

This can be upgraded with composer require nesbot/carbon:^2.62.1

Pull Request on the way to match the outcome of this.

godbout commented 1 year ago

thanks. running the tests on your PR. changes are quite straightforward so it should be fine. will do a release soon if everything's ok.

godbout commented 1 year ago

released in 5.0.0: https://github.com/godbout/alfred-time/releases/tag/5.0.0